劍指Offer 面試題11 旋轉陣列的最小數字

2021-10-22 02:32:06 字數 1205 閱讀 1670

/**

* 面試題11:旋轉陣列的最小數字

* 題目:把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。

* 輸入乙個非遞減排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。

* note:給出的所有元素都大於0,若陣列大小為0,請返回0。

* 例:輸入[3,4,5,1,2],為[1,2,3,4,5]的乙個旋轉返回值:1

* @author

* @create 2021-03-13 23:54

*/public

class

solution11

;int res =

minnumberinrotatearray

(arr)

; system.out.

println

(res);}

public

static

intminnumberinrotatearray

(int

array)

int leftindex =

0, rightindex = array.length -1;

int midindex =0;

// while (array[leftindex] >= array[rightindex])

// midindex = (leftindex + rightindex) / 2;

// if (array[midindex] >= array[leftindex])else if (array[midindex] <= array[rightindex])

// }

// return array[midindex];

while

(leftindex < rightindex)

midindex =

(leftindex + rightindex)/2

;//取得中間索引

if(array[midindex]

> array[leftindex]

)else

if(array[midindex]

< array[rightindex]

)else

}return array[leftindex];}

}

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

完整 位址 把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個非遞減排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。例如陣列為的乙個旋轉,該陣列的最小值為1。note 給出的所有元素都大於0,若陣列大小為0,請返回0。這道題目相對前面的比較複雜,坑比較多 此時用二分法解決,mi...

劍指Offer面試題11 旋轉陣列的最小數字

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

《劍指offer》面試題11 旋轉陣列的最小數字

題目 把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個遞增排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。例如,陣列為的乙個旋轉,該陣列的最小值為1。分析 我們注意到旋轉之後的陣列實際上可以劃分為兩個排序的子陣列,而且前面子陣列的元素都大於或者等於後面子陣列的元素。和二分查詢...