二分查找

二分查找-II

http://www.nowcoder.com/questionTerminal/4f470d1d3b734f8aaf2afb014185b395

public static int search(int[] nums, int target) {
    int left=0;
    int right=nums.length-1;
    int center;
    if(left>right||target<nums[left]||target>nums[right]){
        return -1;
    }
    while (left<=right){
        center=(left+right)/2;
        if(target==nums[center]){
            return select(nums,center);
        }else if(target<nums[center]) {
            right=center-1;
        }else {
            left=center+1;
        }
    }
    return -1;
}
public static int select(int [] nums,int center){
    for(int i=0;i<center;i++){
        if(nums[i]==nums[center]){
            return i;
        }
    }
    return center;
}
全部评论

相关推荐

点赞 评论 收藏
分享
04-25 18:13
五邑大学 Java
后来123321:大二两段实习太厉害了,我现在大二连面试都没有
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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