题解 | #旋转数组的最小数字#

旋转数组的最小数字

https://www.nowcoder.com/practice/9f3231a991af4f55b95579b44b7a01ba

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型一维数组 
     * @return int整型
     */
    public int minNumberInRotateArray (int[] nums) {
        // write code here二分查找
    //初始化数组的头、尾
     int i = 0, j = nums.length-1;  
     while(i < j){
        //数组中点
        int m = (i+j)/2;
        //当中点值大于尾值,区间为【m+1,j】
        if(nums[m] > nums[j]){
            i = m + 1;
        //当中点值小于尾值,区间为【i,m】
        }else if(nums[m] < nums[j]){
            j = m;
        }else{//缩小范围
            j--;
        }
     }
     return nums[i];
    }
}

全部评论

相关推荐

11-06 16:50
门头沟学院 Java
用微笑面对困难:word打字比赛二等奖的我,也要来凑合凑合
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务