58および配列インデックス値に等しい要素 - オファーを獲得

トピック3:

  値と配列の添字は、要素に等しいです。
  整数の単調増加する配列と、各要素が一意であると仮定します。ターゲット要素に等しい配列のいずれかの値を見つけるために、プログラミング機能をしてください。例えば、アレイ{-3、-1,1,3,5}、数字3は、そのインデックスに等しいです。

 

ソリューション:

  、左にその目標値よりも小さい添字値を二分法を使用して、右側の目標値よりも大きい添字値。

1  INT findThatNum(constのベクトル< INT >・データ)
 2  {
 3      であれば(data.size()== 0リターン - 1 4      int型の L = 0、R = data.size() - 1 、M。
5      しばらく(L> = 0 && R <data.size()&& L <= R)
 6      {
 7          M =(R - L)/ 2 + L。
8          もし(データ[M] == M)リターンM。 
9          他の 場合(データ[M]> M)M = R&LT - 1 ; // その値より下付き文字以下で、ターゲットは左
10          他の L = M + 1 ; // 右の目標値よりも大きい添字値
。11      }
 12は     リターン - 1。;
 13 }

 


  

おすすめ

転載: www.cnblogs.com/zzw1024/p/11706881.html