質問がある表示され、アレイ内の数字がある場合に検索:以上のn/8倍
は、n個の数字の配列に存在する場合はO(n)時間で見つけるアルゴリズムを説明し、aはn/8回以上出現する数。我々は場所で番号の選択やる
:
は今、私はある答えを持ってN/9,2 * N/9,3 * N/9、...、8 * N/9であり、8人の候補のうちの1人が少なくともn/8回出現するかどうかをチェックする。
しかし、なぜこのアルゴリズムが動作するのかわかりません。
たとえば、次の配列を考えます。 [3,3,1,3,2,3,4,3,5,3,6,3,7,3,8,3,9,3] 。
ここでn = 18であり、このアルゴリズムでは候補が1,2,4,5,6,7,8,9であり、これらの数字が少なくともn/8回現れるかどうかチェックするとき答えは「いいえ」ですが、実際には3の答えは「はい」になります。
は、だから私は...正しいこのアルゴリズムである理由を理解していない
リピートが隣接している場合のみ意味があります。 – karakfa
正しいアルゴリズムを見つけられるでしょうか? – ChikChak
これは宿題に関する質問ですね。あなたと同じように、あなたが持っている「答え」が実際に働く理由はない* *おそらく、ベクターは**分類されていることが分かっていた。**私は、 Djikstraの*あなたの近くの本棚での並べ替えと検索* –