描述
找出最小的值
解决
二分查找
class Solution {
public:
int findMin(const vector<int>& nums) {
int length = nums.size();
if (length == 0)
return 0;
else if (nums[0] < nums[length - 1])
return nums[0];
int l = 0, r = length - 1, now_val = nums[0];
while (l < r && nums[l] >= nums[r])
{
int m = l + (r - l) / 2;
if (nums[m] > nums[l])
{
l = m;
}
else if (nums[m] == nums[l])
{
++l;
}
else if (nums[m] < nums[l])
{
r = m;
}
//cout << "now_val " << nums[l] << " " << nums[r] << endl;
}
return nums[l];
}
};