-154の特別Leetcode二分法。II最低回転を見つけるためにソートされた配列(回転さソートアレイIIの最小を見つけます。)

-154の特別Leetcode二分法。II最低回転を見つけるためにソートされた配列(回転​​さソートアレイIIの最小を見つけます。)


 

配列に従って昇順は、以前は未知点に回転したと仮定する。

(例えば、アレイ  [0,1,2,4,5,6,7] になるかもしれ  [4,5,6,7,0,1,2] )。

最小の要素を検索します。

アレイ内の繰り返し要素が存在し得ることに留意されたいです。

例1:

入力:[1,3,5] 
出力:1

例2:

入力:[2,2,2,0,1] 
出力:0


153個の質問のように、しかし、この問題は重複した数字を持っていますが、153が与えられますコードの状況:3313
このサンプルでは、我々は唯一の153を必要とする、中間ノード1および3から回転させて以下の変更は、コードにすることができる。
もしNUMS [中間] == NUMS [R ] r--の上に、それらは右直接省略するように、2と同じであるからです。

クラスソリューション{
     公共 のint findMin(INT [] NUMS){
         場合(nums.length == 0 || NUMS == NULL戻り 0 int型の L = 0 ;
        INTの R = nums.length - 1 一方、(L < R){
             int型 1 >>>ミッド=(L + R) もし(NUMS [中間]> NUMS [R]){ 
                L =ミッド+ 1 
            } そう であれば(NUMS [中間] < NUMS [R]){ 
                R = ミッド。
            } { 
                R - 
            } 
        } 
        戻りNUMS [L]。
    } 
}

 



おすすめ

転載: www.cnblogs.com/qinyuguan/p/11410179.html