劍指Offer 題11(旋轉陣列的最小數

2021-09-26 00:05:06 字數 814 閱讀 8694

1.題目

把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。 輸入乙個非減排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。 例如陣列為的乙個旋轉,該陣列的最小值為1。 note:給出的所有元素都大於0,若陣列大小為0,請返回0。

2.思路

可把旋轉後的陣列看做兩個有序陣列,以最小值為分界,前面的數大於最小值,後面的數小於最小值,左邊的數大於右邊的數

利用二分法查詢,定義兩個指標,乙個指向開始,乙個指向結束,計算出中間值,

特殊情況:

3.**實現

public class solution  catch (exception e) 

}int begin=0;

int end= array.length-1;

int mid=begin;

//陣列翻轉了0次,則仍為有序遞增陣列,直接返回

if(array[begin]=array[begin])else

//特殊情況處理,遍歷輸出

if(array[mid]==array[begin]&&array[begin]==array[end])

}return array[mid];

}public static int getmin(int array)

}return min;

}public static void main(string args) ;

int min= minnumberinrotatearray(array);

system.out.println(min);

}}

劍指offer 旋轉陣列的最小數字(11題)

1 第一題引至劍指offer 題目 把乙個陣列最開始的若干元素搬到陣列的末尾,稱其為陣列的旋轉。輸入乙個遞增排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。例如,陣列 3,4,5,1,2 為 1,2,3,4,5 的乙個旋轉,該陣列的最小值為1.解此題分兩種情況 第一種情況 前後指標與中間指標所指向的元...

劍指offer 演算法題 09 旋轉陣列問題

題目描述 把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個遞增排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。例如陣列為的乙個旋轉,該陣列的最小值為1。輸入 輸入可能包含多個測試樣例,對於每個測試案例,輸入的第一行為乙個整數n 1 n 1000000 代表旋轉陣列的元素個數。...

劍指offer刷題 11 旋轉陣列的最小數字

難度 簡單 題目描述 把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個非遞減排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。例如陣列為的乙個旋轉,該陣列的最小值為1。note 給出的所有元素都大於0,若陣列大小為0,請返回0。注 考察二分查詢,二分查詢時陣列是有序的 思路 利...