【LeetCode】153. 尋找旋轉排序陣列中的最小值
阿新 • • 發佈:2018-12-14
題目描述
假設按照升序排序的陣列在預先未知的某個點上進行了旋轉。
( 例如,陣列 [0,1,2,4,5,6,7] 可能變為 [4,5,6,7,0,1,2] )。
請找出其中最小的元素。
你可以假設陣列中不存在重複元素。
示例
輸入: [3,4,5,1,2] 輸出: 1
輸入: [4,5,6,7,0,1,2] 輸出: 0
解決方法
class Solution {
public:
int findMin(vector<int>& nums) {
int min=INT_MAX;
int left=0,right=nums.size ()-1;
while(left<=right){
int mid=(left+right)/2;
if (nums[mid]<nums[right]){
if (nums[mid]<min) min=nums[mid];
right=mid-1;
}
else{
if (nums[left]<min) min=nums[left];
left= mid+1;
}
}
return min;
}
};