class Solution {
public:
int findMin(vector<int>& nums) {
int n=nums.size();
if(n==1)
return nums[0];
int l=0,r=n-1;
while(l<r)
{
int mid=(l+r)>>1;
if(mid<n-1&&nums[mid]>nums[mid+1])
return nums[mid+1];
else if(nums[mid]<nums[l])
r=mid;
else if(nums[mid]>nums[r])
l=mid+1;
else if(nums[mid]>nums[l]&&nums[mid]<nums[r])
return nums[l];
else
{
if(nums[l]>nums[r])
l++;
else
r--;
}
}
return nums[l];
}
};154. Find Minimum in Rotated Sorted Array II
最新推荐文章于 2021-04-09 16:46:58 发布
本文介绍了一种在旋转排序数组中查找最小元素的方法。通过使用二分查找变种算法,能够在O(log n)的时间复杂度内找到最小值。文章详细解释了算法的工作原理,并提供了完整的C++代码实现。
1190

被折叠的 条评论
为什么被折叠?



