题目
代码分析
需要注意特殊情况,本身就是有序的,通过二分查找
代码实现
class Solution {
public int findMin(int[] nums) {
int start=0;
int end=nums.length-1;
if(nums[start]<nums[end]) return nums[start];
while(start<end)
{
if(start+1==end) return Math.min(nums[start],nums[end]);
int mid=(start+end)/2;
if(nums[start]<nums[mid])//缺口在后面
{
start=mid;
}else
{
end=mid;//可能mid就是缺口
}
}
return nums[start];
}
}
京公网安备 11010502036488号