旋转后的数组分为两部分,因此可以用二分查找,找到第一个比nums[0]
小的数字即可。
class Solution {
public int findMin(int[] nums) {
int l = 0, r = nums.length;
while (l < r) {
int m = (l + r) / 2;
if (nums[m] < nums[0]) {
r = m;
} else {
l = m + 1;
}
}
l = l % nums.length;
return nums[l];
}
}