一道做过而且有印象的题目
再做竟然没搞出来,真是。。。
归根结底,是这个矩阵消除行列的方式不直观,直到我看到了一张图
我原来老是纠结在左边那条对角线上,而且感觉这种想法也挺直观的
但是这图一画出来就懂了
这确实就是二叉搜索树
于是代码就很简单了
class Solution { public boolean findNumberIn2DArray(int[][] matrix, int target) { if(matrix==null||matrix.length==0||matrix[0].length==0) {return false;} int m=matrix.length; int n=matrix[0].length; int i=m-1; int j=0; while(i>=0&&i<m&&j>=0&&j<n) { if(matrix[i][j]==target) {return true;} else if(matrix[i][j]>target) {i--;} else{j++;} } return false; } }
这道题我不可能再做不出来了。。。