-4
私が見た問題は以下の通りです。Judgecode - Array Prefix
http://judgecode.com/problems/1002
N整数Aの非空の配列が与えられると、A内のすべての数字は、サブアレイA [0..P]にあるような最小の整数Pを見つけてください。
私が見た問題は以下の通りです。Judgecode - Array Prefix
http://judgecode.com/problems/1002
N整数Aの非空の配列が与えられると、A内のすべての数字は、サブアレイA [0..P]にあるような最小の整数Pを見つけてください。
アレイのすべての項目をスキャンする必要があるため、少なくともO(N)
アルゴリズムを実装する必要があります。 ハッシュセットを追加しながら配列をスキャンし、ハッシュセットサイズを増やすと(つまり、ユニークアイテムが追加されました)、アイテムのインデックスが記憶されます。記憶された最後のインデックスを返す
C#実装:
int[] sample = new [] { 2, 2, 1, 0, 1, };
Console.Write(MinIndex(sample));
結果は3
ある
private static int MinIndex(IEnumerable<int> source) {
HashSet<int> used = new HashSet<int>();
int index = -1;
int result = -1;
foreach (int item in source) {
index += 1;
if (used.Add(item)) // unique item added
result = index; // the last unique item's index so far
}
return result;
}
試験:初期アレイ{0, 1, 2}
の全ての異なる項目が[2, 2, 1, 0]
[0..3]
ています
これらのパズルの背後にあるアイデアは、自分で作業することです。答えの種類を尋ねることは、パズルの目的を破るのですか? –