题意:有一个数组升序排列后经过rotate后得到一个新的数组,求这个新的数组的最小值。
https://leetcode.com/problems/find-minimum-in-rotated-sorted-array/
答案:本题是要找到小于a[0]的第一个数,所以可以二分,注意判断答案是否存在。
class Solution {
public:
int findMin(vector<int>& nums) {
int l = 0;
int r = nums.size() - 1;
while (l < r) {
int mid = l + ( r - l) / 2;
if(nums[mid] < nums[0]) {
r = mid;
} else {
l = mid + 1;
}
}
if(nums[l] < nums[0]) {
return nums[l];
} else {
return nums[0];
}
}
};