一. 题目
二. 思路
二段性,找到一个位置,使得左右不分都有序。
若数组本来就有序,则a[0]就是答案。
三. 代码
class Solution
{
int tfind(int[] a, int l, int r)
{
while (l < r)
{
int mid = l + r >> 1;
if (a[l] <= a[r]) return a[l];//如果查找范围有序
if (a[l] <= a[mid]) l = mid + 1;//mid在左边有序段
else r = mid;//mid在右边有序段
}
return a[l];
}
public int findMin(int[] nums)
{
return tfind(nums, 0, nums.length - 1);
}
}