题解 | #二维数组中的查找#

二维数组中的查找

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

使用二分查找,对于这种二维数组的二分查找,我们可以从右上角或者坐下开始,这里以右上角为例: 如果右上角的值大于要查找的值,那么肯定最后一列的值都大于,我们可以缩小查找范围到前面的列;如果右上角的值小于要查找的值,可以肯定这一行的值都小于,可以缩小查找范围到下面列。重复上面步骤,知道找到数据或者数组遍历完成。

    public boolean Find(int target, int [][] array) {
        int i=0;
        int j=array[0].length-1;
        while(i<array.length&&j>=0){
            if(array[i][j]>target){
                j--;
            }else if(array[i][j]<target){
                i++;
            }else{
                return true;
            }
        }
        return false;
    }
}
全部评论

相关推荐

01-14 15:08
东南大学 Java
点赞 评论 收藏
分享
头发暂时没有的KFC总裁:找廉价劳动力罢了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务