題目描述:
把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。實現如下:輸入乙個非遞減排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。
例如陣列為的乙個旋轉,該陣列的最小值為1。
note:給出的所有元素都大於0,若陣列大小為0,請返回0。
//
// l m r
//規律:一般前旋轉區的數大於等於後旋轉區的數
//注意特殊情況
//1.旋轉數為0個,即未旋轉,此時rotatearray[0]為min
//2.->
// l m r 此時無法判斷middle在前旋轉區還是後旋轉區
//o(logn)
class solution
return min;
}int minnumberinrotatearray(vector
rotatearray)
//當l==m==r時,只能採取遍歷方式尋找min
else
if (*itleft == *itright && *itleft == *itmiddle)
return searchinrotatearray(rotatearray);
//此時min在後旋轉區
else
if (*itleft <= *itmiddle) itleft = itmiddle;
//此時min在前旋轉區
else
if (*itright >= *itmiddle) itright = itmiddle;
}return *itmiddle;
}};//嘿嘿...直接sort,費這老鼻子勁→_→
//o(n)
/*#include class solution
};*/
劍指Offer 6 旋轉陣列的最小元素
description把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個非減排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。例如陣列為的乙個旋轉,該陣列的最小值為1。note 給出的所有元素都大於0,若陣列大小為0,請返回0。可以直接binary search,每次mid和r的...
劍指offer(6) 旋轉陣列的最小數字
把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個遞增排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。例如陣列為的乙個旋轉,該陣列的最小值為1。note 給出的所有元素都大於0,若陣列大小為0,請返回0。這道題最直觀的解法並不難,從頭到尾遍歷陣列一次,我們就能找出最小的元素。這...
劍指offer 6 旋轉陣列的最小數字
把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個非遞減排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。例如陣列為的乙個旋轉,該陣列的最小值為1。note 給出的所有元素都大於0,若陣列大小為0,請返回0。解法1 從頭到尾遍歷一次,當第一次遇到前面的值大於後面的值時,後面的值即...