剑指 Offer 04. 二维数组中的查找

package leetcode;

public class offer_04 {
    
    public boolean findNumberIn2DArray(int[][] matrix, int target) {
        if(matrix.length == 0) {
            return false;
        }
        int height=matrix.length-1;
        int width=matrix[0].length-1;
        if(target<matrix[0][0]||target>matrix[height][width]) {
            return false;
        }
        int n=0;
        int m=width;
        //从矩阵右上角开始寻找
        while(n<=height&&m>=0) {
            //找到target
            if(matrix[n][m]==target) {
                return true;
            }
            //当前值小于target,那么一定是当前行的下一行
            if(matrix[n][m]<target) {
                n=n+1;
            //当前值大于target,那么一定是当前列的前一列
            }else {
                m=m-1;
            } 
        }
        return false;
    }
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        offer_04 off=new offer_04();
        int[][] matrix= {{1,4,7,11,15},{2,5,8,12,19},{3,6,9,16,22},{10,13,14,17,24},{18,21,23,26,30}};
        System.out.println(off.findNumberIn2DArray(matrix, 5));
    }

}

 

posted on 2022-03-06 19:55  一仟零一夜丶  阅读(22)  评论(0)    收藏  举报