二维数组中的查找 --剑指offer

在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

思路 : 选择左下角点(右上点)都可以,因为这两个点比较特别 比同行的都小(大),比同列的都大(小)

这里我选的是左下点

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

 

posted @ 2020-03-04 12:48  nlw  阅读(110)  评论(0编辑  收藏  举报