【刷题】面试题11. 旋转数组的最小数字
2020-04-02 18:37
381 查看
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。
分析:这道题顺序遍历直接找出最小值即可;
class Solution { public int minArray(int[] numbers) { //int start = numbers.length/2; int min=numbers[0]; for(int i=0;i<numbers.length;i++){ if(min>numbers[i]){ return numbers[i]; } } return min; } }
事情我想没有这么简单,面试题可能考的是的是二分查找的应用;
class Solution { public int minArray(int[] numbers) { //int start = numbers.length/2; int i=0,j=numbers.length-1; while(i<j){ int m=(i+j)/2; if(numbers[m]>numbers[j]){//中间值比最右边的哒 i=m+1; }else if(numbers[m]<numbers[j]){//中间值小于最右边的值 j=m; }else{//存在相同值的情况 j--; } } return numbers[i]; } }
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 剑指offer面试题11:旋转数组的最小数字java实现
- 《剑指offer》面试题11:旋转数组的最小数字
- 面试题11:旋转数组的最小数字
- 剑指offer:面试题11—旋转数组的最小数字
- 剑指-面试题11 旋转数组的最小数字
- leetcode--面试题11. 旋转数组的最小数字
- 面试题11:旋转数组的最小数字
- 【剑指offer】面试题11:旋转数组的最小数字
- 【剑指offer】面试题 11:旋转数组的最小数字
- 剑指Offer面试题11:旋转数组的最小数字
- 剑指offer面试题11:旋转数组的最小数字(Java 实现)
- 面试题11:旋转数组的最小数字
- 面试题11:旋转数组的最小数字
- 【剑指offer】 面试题11 旋转数组的最小数字
- 剑指offer 面试题11 旋转数组的最小数字
- 剑指offer--面试题11:旋转数组的最小数字
- 【剑指offer】面试题11-旋转数组的最小数字
- 剑指Offer(第二版)面试题11:旋转数组的最小数字
- 面试题8:求旋转数组的最小数字的c++代码实现
- 面试题8:旋转数组的最小数字