题解 | #二维数组中的查找#二维遍历一维二分

二维数组中的查找

http://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e

    public boolean Find(int target, int [][] array) {
        //遍历二维数组 取出每一个一位数组后进行二分法查找
        if(array == null || array.length == 0){
            return false;
        }
        for(int i = 0;i< array.length ;i++){
            int[] item = array[i];
            if(has(item,target)){
                return true;
            }
        }
        return false;
    }
    
    public boolean has(int[] nums,int target){
        if(nums == null || nums.length == 0){
            return false;
        }
        int beginIndex = 0;
        int endIndex = nums.length - 1;
        while(beginIndex < endIndex){
            int middleIndex = beginIndex + (endIndex - beginIndex) / 2;
            int value = nums[middleIndex];
            if(value == target){
                return true;
            }
            if(value > target){
                endIndex = middleIndex;
            }
            if(value < target){
                beginIndex = middleIndex + 1;
            }
        }
        if(beginIndex == endIndex && nums[beginIndex] == target){
            return true;
        }
        return false;
    }
}
全部评论

相关推荐

06-11 17:39
门头沟学院 Java
小呆呆的大鼻涕:卧槽,用户彻底怒了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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