题意很好理解,找最小值,遍历一遍即可,复杂度O(N)
或找小于前一个元素的值。由于是递增数组,这种元素只存在一个,遍历一遍即可,还是O(N。如果用二分查找,则为O(logN)
public class Solution {
public int FindMin(int[] nums) {
int l = 0,r = nums.Length-1;
while(l < r)
{
int mid = (l+r)/2;
if(mid > 0 && nums[mid] < nums[mid-1])
return nums[mid];
if(nums[mid] > nums[r])
l = mid + 1;
else
r = mid - 1;
}
return nums[l];
}
}