给定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。
思路:从左下角或者右上角开始查找,这样一切就变得有序起来,目标比当前数字大向下查,比当前数字小向左跑
代码:
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;
}
咱也不知道为啥,本地测没问题,放上去就测试错误,刷新了一遍浏览器就好了.
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有