私は整数の配列を維持しています。この配列の整数は常に0から順になることが重要です。たとえば、配列に5つの整数がある場合、その値は0,1,2,3,4(いずれの順序であっても)でなければなりません。一貫性のために一連の数値を調べる
これを確認する簡単で効率的な方法を設計したいと思います。配列に0からarray.count - 1の順番ですべての正の整数が含まれている場合は、trueを返します。
これを処理するためのいくつかの異なるアイデアをお聞きしたいと思います。
- (BOOL)itemsSequencedCorrectlyInSet:(NSSet *)testSet{
for (NSInteger i = 0; i < testSet.count; i++) {
if (![testSet containsObject:[NSNumber numberWithInteger:i]]) {
return NO;
}
}
return YES;
}
*確実にする必要がある場合は、配列内の各要素を調べてチェックするよりもうまくいくことはできません。したがって、配列の長さから1を引いたものを0から数え、配列の位置iにあるものが実際には値iであることを確認してください。 (唯一の「最適化」は、カウントを続けるのではなく、何かでなければならない要素に遭遇するたびにfalseを返すことです)。編集:ああ、マティアスは良い点を作っています:とにかくこの配列を保持するのは何ですか?あなたは 'n '以下のすべての自然数をどのように計算するのかよく知っています。 – gspr
何のために配列を使用していますか?配列の上限を維持し、整数を反復する方が簡単ではないでしょうか? – Mathias
私は、配列を使用してテーブルビューを設定します。数字はソート順です。私はアイテムをさまざまな方法でセクション内にドロップします。ソート順を正しく設定するメソッドが必要なので、アイテムをセクションの内外に移動した後、ギャップなどはありません。私が現在やっていること - あなたの提案に合っていると思います。私は数を合計し、フィボナッチシーケンスと比較することを見ていました - おそらく効率的ではありませんが、楽しいかもしれません)。 –