《剑指offer》-旋转数组的最小数字
2017-03-26 09:54
344 查看
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。
输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。
例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。
NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。
考察二分查找。虽然是有序数组进行了旋转的,但实际上依然可以用二分的做法来找。
输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。
例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。
NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。
考察二分查找。虽然是有序数组进行了旋转的,但实际上依然可以用二分的做法来找。
int minNumberInRotateArray(vector<int> rotateArray){ int low = 0; int high = rotateArray.size() - 1; while (low < high){ int mid = low + (high - low) / 2; if (rotateArray[mid] > rotateArray[high]){ low = mid + 1; } else if (rotateArray[mid] == rotateArray[high]){ high = high - 1;; } else{ high = mid; } } return array[low]; }
相关文章推荐
- 剑指offer-面试题8.旋转数组的最小数字
- 剑指Offer面试题:7.旋转数组的最小数字
- JAVA实现旋转数组的最小数字问题(《剑指offer》)
- 剑指offer(6)-旋转数组的最小数字
- 《剑指offer》:[11]旋转数组的最小数字
- 面试题08_旋转数组的最小数字——剑指offer系列
- 剑指offer面试题八:旋转数组的最小数字
- 剑指offer 面试题8:旋转数组的最小数字 题解
- 《剑指Offer》算法题——“旋转数组”的最小数字
- 《剑指Offer》之面试题旋转数组的最小数字
- 《剑指Offer》读书笔记06:旋转数组的最小数字
- 《剑指Offer》面试题:旋转数组的最小数字
- 剑指offer之面试题8旋转数组的最小数字
- 《剑指offer》面试题8 旋转数组的最小数字
- 剑指offer刷题之c++实现的旋转数组的最小数字
- 《剑指offer》面试题8—旋转数组的最小数字
- 剑指Offer面试题8(java版):旋转数组的最小数字
- 剑指offer(九)之旋转数组的最小数字
- 剑指offer-旋转数组的最小数字
- 剑指offer 旋转数组的最小数字