ATO 11 旋轉陣列的最小數字

2021-09-29 18:49:04 字數 747 閱讀 9466

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

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

例如陣列為的乙個旋轉,該陣列的最小值為1。

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

class

solution

mid =

(low + high)

>>1;

if(rotatearray[low]

== rotatearray[mid]

&& rotatearray[mid]

== rotatearray[high])if

(rotatearray[mid]

>= rotatearray[low]

) low = mid;

else

high = mid;

}return rotatearray[mid];}

intmininarray

(vector<

int> rotatearray,

int low,

int high)

return _min;}}

;

此題主要是幾種特殊情況要考慮到,在做題時,開始時while迴圈條件沒想清楚。

搞笑解法:

class

solution

};

11 旋轉陣列的最小數字

把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個非遞減排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。例如陣列為的乙個旋轉,該陣列的最小值為1。我的 二分法 class min defsolution self,nums a nums 0 b nums 1 iflen num...

11 旋轉陣列的最小數字

二分法搜尋方法 include using namespace std intmin int numbers,int length int index1 0 int index2 length 1 int indexmid index1 while numbers index1 numbers in...

11 旋轉陣列的最小數字

把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個遞增排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。例如,陣列 3,4,5,1,2 為 1,2,3,4,5 的乙個旋轉,該陣列的最小值為1。輸入 3,4,5,1,2 輸出 1 輸入 2,2,2,0,1 輸出 0 此題很容易想到順...