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

不难,但是没一下子捋顺,做了46分钟42秒才完成。。

public boolean findNumberIn2DArray(int[][] matrix, int target) {
        int n = matrix.length; //n行
        if(n==0) return false;
        int m = matrix[0].length; //m列
        if(m == 0) return false;
        int i = m-1 , j = 0;
        while(i>=0 && j<n){
            if(matrix[j][i] == target) return true;
            if(matrix[j][i] > target) i--;
            else{
                while(j<n){
                    if(matrix[j][i] == target) return true;
                    if(matrix[j][i] < target) j++;
                    else break;
                }
            }
        }
        return false;
    }

 从右上角的元素开始进行比较,若相等,返回true;

                                                   target若小于,向左移动;

                                                   target若大于,开始考虑是否向下移动,直到结束。

我的前方是万里征途,星辰大海!!
原文地址:https://www.cnblogs.com/taoyuxin/p/13444983.html