【2对1错1】旋转数组的最小元素
2019-02-09 本文已影响1人
7ccc099f4608
日期 | 是否一次通过 | comment |
---|---|---|
2019-02-07 20:20 | Y | 遍历一遍 |
2019-02-09 19:09 | Y | 二分查找 |
2019-02-10 12:09 | Y | 注意下判断条件里两边都要写等号,防止数组全是同一个值 |
题目:求先增后减数组中的最小元素
思路:
- 近似有序数组元素的查找,二分法
1. 二分法
import java.util.*;
public class Solution {
public int minNumberInRotateArray(int[] array) {
if(array.length == 0) {
return 0;
}
int sta = 0;
int end = array.length - 1;
while(sta + 1 < end) {
int mid = sta + (end - sta) / 2;
if(array[mid] >= array[sta]) {
sta = mid;
} else {
end = mid;
}
}
return Math.min(array[sta], array[end]);
}
}