牛客刷題 找旋轉陣列的最小元素

2021-09-25 15:44:11 字數 479 閱讀 9323

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

解題思路:

1 遍歷一遍陣列,只要遇到後乙個比前乙個小,那麼後乙個 就是最小的元素。

2 使用二分查詢,如果中間元素比左邊大,那麼再第乙個有序的子陣列中 讓min=mid

如果中間元素 比右邊小,那麼在第二個有序的子陣列中 讓 max=mid

如果都不滿足,那麼說明中間元素在第二個有序的子陣列中,且大於等於 max,那只可能是等於max,返回max

//第一種思路:

class solution

int min=0,mid,max=length-1;

while(min!=max)

else}}

};

牛客(6)旋轉陣列的最小元素

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

刷題筆記6 輸出旋轉陣列的最小元素

把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個非減排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。例如陣列為的乙個旋轉,該陣列的最小值為1。note 給出的所有元素都大於0,若陣列大小為0,請返回0。遍歷陣列的每乙個元素,如果發現有比最小值小的,就把那個值賦給它即可。時間複...

旋轉陣列的最小元素

題目 把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個排好序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。例如陣列為的乙個旋轉,該陣列的最小值為1。解題 類似二分查詢,使用兩個指標 left right 指向一前一後,一般情況下arr left 一定大於等於arr right ...