解法
- 可以使用暴力解题 直接遍历一次 时间复杂度是O(n)
- 使用二分的变形,把右端点当成target,然后每次进行比较 如果array[mid] <=target 就把右端点变成mid 否者就是left 变成mid+1
import java.util.ArrayList; public class Solution { public int minNumberInRotateArray(int [] array) { int right = array.length-1; int left = 0; int target = array[right]; while(left<right ){ int mid = (left+right)/2; if(array[mid] <= target){ right = mid ; target = array[mid]; }else if (array[mid]>target){ left = mid+1; }else{ left++; } } return target; } }