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

旋转数组的最小数字

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

这是简单题嘛,好难呜呜呜~~~~~~,二分查找的变种,规划end(最后的下标)与mid(中间的下标)

import java.util.ArrayList;
public class Solution {
    public int minNumberInRotateArray(int [] array) {
        int mid = array.length / 2;
        int first = 0;
        int end = array.length-1;
        int w = 0;
        while(first < end){
            if((end - first) == 1){
               
                break;
            }
            if(array[end] > array[mid]){
                end=mid;
                mid = (end+first) / 2;
            }
            else if(array[end] < array[mid]){
                first = mid+1;  //最小的不会是mid,还有end小
                mid = (end+first) / 2;
            }
            else if(array[end] == array[mid]){
                end--;
                mid = (end+first) / 2;
               
            }
            
            
            
        }
        if(array[first] > array[end]){
            return array[end];
        }
        else{
            return array[first];
        }
    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-07 13:35
虽然不怎么光彩,经过这件事,可能我真的要去认同“面试八股文早该淘汰!不会用AI作弊的程序员=新时代文盲!”这句话了
HellowordX:Ai的出现是解放劳动力的,不是用来破坏公平竞争环境的,这样下去,轻则取消所有线上面试,严重了会影响整个行业对所有人产生影响,企业会拉高入职考核各种离谱考核会层出不穷
你找工作的时候用AI吗?
点赞 评论 收藏
分享
鬼迹人途:你去投一投尚游游戏,服务器一面,第一个图算法,做完了给你一个策略题,你给出方案他就提出低概率问题,答不上当场给你挂
点赞 评论 收藏
分享
Gaynes:查看图片
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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