-153のLeetcodeテーマの二分法。探し最小回転ソート配列(回転したソート配列で最小値を求めます)

-153のLeetcodeテーマの二分法。探し最小回転ソート配列(回転​​したソート配列で最小値を求めます)


 

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

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

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

あなたは、配列内の要素のない重複がないと仮定することができます。

例1:

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

例2:

入力:[4,5,6,7,0,1,2] 
出力:0

もちろん、私たちは、半分は増えていないことを見つけるために、バイナリ検索を使用する必要があります。
だから、長いNUMS [中期]> NUMS [Rとして ] 、その後、期間の中頃権利が増加されていません。

ACコード:
クラスソリューション{
     公共 の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 
            } { 
                R = ミッド。
            } 
        }
        return nums[L];
    }
}

 

おすすめ

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