タイトル説明
いくつかの要素の配列の先頭には、配列、我々は回転呼んで配列の最後に移動しました。出力回転最小の素子アレイの回転の入力配列の非降順。例えば、配列{3,4,5,1,2}、{1,2,3,4,5}は最小のアレイの回転です。注:配列のサイズは、リターン0 0である場合、すべての要素は、0よりも大きいに記載されています。
分析
バイナリ検索。
コード
class Solution {
public:
int minNumberInRotateArray(vector<int> rotateArray) {
if(rotateArray.empty())
return 0;
int low = 0;
int high = rotateArray.size() - 1;
int mid = 0;
while(low < high) {
if(rotateArray[low] < rotateArray[high])
return rotateArray[low];
mid = low + (high - low) / 2;
if(rotateArray[low] < rotateArray[mid])
low = mid + 1;
else if(rotateArray[mid] < rotateArray[high])
high = mid;
else
low++;
}
return rotateArray[low];
}
};