153. 寻找旋转排序数组中的最小值
程序员文章站
2024-03-20 17:23:04
...
寻找旋转排序数组中的最小值
假设按照升序排序的数组在预先未知的某个点上进行了旋转。
( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。
请找出其中最小的元素。
你可以假设数组中不存在重复元素。
示例 1:
输入: [3,4,5,1,2]
输出: 1
思路+代码+注释:
public int findMin(int[] nums) {
/*
思路:中间大于最右,右边小去右边找
中间小于最右,左边小去左边找
*/
int min=Integer.MAX_VALUE;
int low=0;
int high=nums.length-1;
int mid;
while (low<=high)
{
mid=(low+high)/2;
if (nums[mid]<min)
{
min=nums[mid];
}
if (nums[mid]>nums[high])
{
low=mid+1;
}else {
high=mid-1;
}
}
return min;
}
上一篇: App Crash 详解