//暴力法 时间复杂度 O(m * n) //根据排序的规律观察,得到类似2叉搜索树的解法 O(m + n) class Solution { public boolean findNumberIn2DArray(int[][] matrix, int target) { //判空 if(matrix == null || matrix.length == 0) { return false; } //找一个右上角 或者 左下角的元素 , 我找右上角,定义它的坐标 int i = 0,j = matrix[0].length - 1; //边界判断 while(i < matrix.length && j >= 0){ //右上角的元素 小于 目标值,要下移 if(matrix[i][j] < target){ i++; //右上角的元素 大于 目标值,要左移 } else if(matrix[i][j] > target){ j--; //相等,则找到目标元素,返回 } else{ return true; } } //没找到,返回false return false; } }