在转动过得有序数组中寻找目标值

在转动过的有序数组中寻找目标值

https://www.nowcoder.com/practice/7cd13986c79d4d3a8d928d490db5d707?tpId=117&tags=&title=&diffculty=0&judgeStatus=0&rp=1&tab=answerKey

public int search (int[] A, int target) {
        if(A==null) return -1;
        int left = 0;
        int right = A.length-1;
        //不存在重复
        while (left<=right){
            int mid = (right-left)/2+left;
            if (A[mid]==target) return mid;
            else if(A[mid]<A[right]){
                if (target>A[mid] && target<=A[right]){
                    left = mid+1;
                }else {
                    right= mid-1;
                }
            }else {
                if(target>=A[left] && target<A[mid]){
                    right = mid-1;
                }else {
                    left = mid+1;
                }
            }
        }
        return -1;
    }
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-07 14:00
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 17:10
点赞 评论 收藏
分享
程序员小白条:你是沟通了900个,不是投了900份简历,你能投900份,意味着对面都要回复你900次,你早就找到实习了,没亮点就是这样的,别局限地区,时间投的也要早,现在都要7月了
点赞 评论 收藏
分享
测试糕手手:社会第一课,随便吹牛逼,直接说四个月,别老实。老实人只会被欺负
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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