回数ソート配列で表示される番号:顔の質問五十から三

 

トピック1:回数数ソート配列の中に表示されていること
方法:その番号を見つけるためにバイナリ検索を使用して、約統計拡大
方法2を:それぞれのバイナリ検索は、最初と最後のk Kを見つけ、その後、減算します

 静的 INT findk(INT []、INT K){
              もし、(A == NULL || a.length <1)戻り 0 ;
             INT = 0なりますINT端= a.length-1 int型 I1 = -1 ;
             int型間;
             一方、(BE <= 端){ 
                  インター 1 =(+端である)>> もし([インター] < K)
                      である = + 1インターそれ以外の 場合([インター]> k)の =インター1 {
                       場合(インター== 0 || [インター1] < K){ 
                           I1 = インター。
                           休憩; 
                      } 
                      他の =インター1 。               
                  }     
             } 
             もし(I1 == - 1)戻り 0 ; 
             こと = I1;  = a.length-1 int型I2 = -1 ;
             一方、(BE <= 端){ 
                  インター 1 =(+端である)>> もし([インター] < K)
                      である = + 1インター他の 場合([インター]> k)の =インター1 {
                       場合(インター== a.length-1 || [インター+ 1]> K)
                        { 
                           I2 = インター。
                           休憩; 
                      }
                      他に = + 1間;                
                  }                  
             } 
             もし(I2> = I1)
                   リターン I2-I1 + 1 リターン 0 ; 
         }

タイトル2:0-n-1の欠失素子
n-1の一意の数値範囲Nデジタル一方の0〜N-1と配列からわずか1桁以内の配列番号で昇順に長さデジタル見つける
方法:バイナリサーチを直接使用し、値の添え字が等しい場合、値はインデックスよりも大きい桁である場合、それは左側にそうでない場合は、現在の標準の下でインデックス戻りに等しい値にそれをです

1つの  静的 INT GetmissNumber(INT []){
 2               であれば(A == NULL || a.length <1)戻り 0 ;
図3は、              INT = 0です4               INT端= a.length-1 5               INT <U> I1 </ U> = - 1 6               int型の間;
7               一方(BE <= 端){
 8                    インター=(+端である)>> 1 9                    もし([インター] == 間)
 10                        BE =インター+ 1 11                    {
 12                        であれば(インター== 0 ||([インター]>間&& [インター1] ==間-1 ))
 13                             リターンインター。
14                        端=インター1 15                    }             
 16               }        
 17               リターン -1 18           }

タイトルIII:同じ要素値インデックスを探す
方法:バイナリサーチを、インデックスは、インデックスが少ない左側の値未満である場合、右は、見つけることができないこと-1値よりも大きい場合

おすすめ

転載: www.cnblogs.com/niliuxiaocheng/p/12593321.html