class Solution {
public:
int findMin(vector<int>& nums) {
int start = 0, end = nums.size() - 1;
int mid;
while(start + 1 < end){ //+1!!
mid = (end - start) / 2 + start;
if(nums[mid] < nums[end])
end = mid;
else if(nums[mid] > nums[end])
start = mid;
else
end--; //!!!有重复!!!
}
if(nums[start] <= nums[end])
return nums[start];
else
return nums[end];
}
};154. Find Minimum in Rotated Sorted Array II
最新推荐文章于 2024-04-03 07:44:23 发布
本文介绍了一种在已知数组被旋转过的条件下查找最小元素的方法。通过使用二分查找算法,可以在O(log n)的时间复杂度内找到未排序前数组的最小值。此算法巧妙地处理了数组中可能存在重复元素的情况。
233

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



