
求解代码
对旋转数组来说,右子数组的数值整体更小,左子数组的数值整体更大。
数组的最小值一定是右子数组的第一个元素。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
public int minNumberInRotateArray (int[] nums) {
if(nums.length==0){
return 0;
}
int i=0;
int j=nums.length-1;
while(i<j){
int mid = i+((j-i)>>1);
if(nums[mid]>nums[j]){
i=mid+1;
}else if(nums[mid]<nums[j]){
j=mid;
}else{
j--;
}
}
return nums[i];
}
|