基本的な考え方:
ハッシュ処理することができる、それはアクセスのO(N)トラバーサルであってもよいです。
キーポイント:
ここでは、マシンに依存し、個人的な感情千万は十分なはずですが、時間と少しのデータをスケーリングしようとする何のまだ保険のポイント、配列の最大の問題定義されています。
する#include <stdio.hに> する#include <STDLIB.H> の#include <iostreamの> する#include < ストリング > の#include <ベクトル> の#include <アルゴリズム> 使用して 名前空間STDを、 const int型 MAXN = 0x7ffffff 。 int型のTHASH [MAXN]。 int型のmain(){ int型、nは フィル(THASH、THASH + MAXN、 - 1 )。 一方、(CIN >> nは){ int型。 以下のために(INT iが= 0、I <N; I ++){ CIN >> 。 THASH [A] = I。 } であれば(<= 0 ){ COUT << - 1 << ENDL。 続け; } CIN >> 。 COUT << THASH [A]。 } 戻り 0 。 }