旋转数组的最小数字(剑指Offer)
2018-03-04 22:27
211 查看
一道二分法的简单题目
public static int minNumberInRotateArray(int[] array) { int len = array.length; if (len == 0) return 0; else if (array[0] <= array[len - 1]) return array[0]; else if (array[len - 1] < array[len - 2]) return array[len - 1]; int beg = 0; int end = array.length - 1; //有旋转且不是最后一个 之所以把最后一个的判断放在上面是为了节约时间 while (beg <= end) { int mid = (beg + end) / 2; if (mid == 0) beg = mid + 1; else if (array[mid] < array[mid - 1]) return array[mid]; else if (array[mid] >= array[0]) beg = mid + 1; else if (array[mid] <= array[len - 1]) end = mid - 1; } return -1; }
相关文章推荐
- 剑指offer系列-T8旋转数组的最小数字
- 剑指Offer_11_旋转数组的最小数字
- 剑指offer__03__旋转数组的最小数字
- 《剑指offer》刷题笔记(查找和排序):旋转数组的最小数字
- 剑指offer——6.旋转数组的最小数字
- 剑指offer面试题8——旋转数组的最小数字
- 旋转数组的最小数字(剑指offer)
- 剑指offer-面试8:旋转数组的最小数字(查找和排序)
- 剑指offer-旋转数组的最小数字
- 剑指Offer面试题8(java版):旋转数组的最小数字
- 剑指Offer------旋转数组的最小数字
- 《剑指offer》:[11]旋转数组的最小数字
- 剑指offer刷题之c++实现的旋转数组的最小数字
- JAVA实现旋转数组的最小数字问题(《剑指offer》)
- 剑指offer面试题八:旋转数组的最小数字
- 《剑指Offer》面试题8:旋转数组的最小数字
- 剑指Offer面试题:7.旋转数组的最小数字
- (剑指Offer)面试题8:旋转数组的最小数字
- 《剑指Offer》之“旋转数组的最小数字”
- 《剑指offer》面试题8 旋转数组的最小数字