给定M×N矩阵,每一行、每一列都按升序排列,请编写代码找出某元素。
示例:
现有矩阵 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] ] 给定 target = 5,返回 true。
给定 target = 20,返回 false。
思路:从左下角或者右上角开始查找,这样一切就变得有序起来,目标比当前数字大向下查,比当前数字小向左跑
代码:
代码语言:javascript复制 public boolean searchMatrix(int[][] matrix, int target) {
if (matrix==null||matrix.length==0){
return false;
}
//从右上角开始查这个数是否存在
int rowCur=0;//当前行
int colCur=matrix[0].length-1;//当前列
while (colCur>-1&&rowCur<matrix.length){
if (matrix[rowCur][colCur]==target){
return true;
}else if (matrix[rowCur][colCur]>target){
colCur--;
}else if (matrix[rowCur][colCur]<target){
rowCur ;
}
}
return false;
}
咱也不知道为啥,本地测没问题,放上去就测试错误,刷新了一遍浏览器就好了.