思路:
非常有技巧性的查找,因为条件苛刻:每一行都升序,每一列也都生序。
从右上角开始查找:
(1)如果比target大,该列都比target大,左移;
(2)如果比target小,该行都比target小,下移;
(3)找到返回true;
public class Solution {
public boolean searchMatrix(int[][] matrix, int target) {
if(matrix == null || matrix.length == 0 || matrix[0].length == 0) return false;
int i = 0, j = matrix[0].length - 1;
while(i < matrix.length && j >= 0) {
if(matrix[i][j] > target) {
--j;
}else if(matrix[i][j] < target) {
++i;
}else {
return true;
}
}
return false;
}
}
本文介绍了一种高效的矩阵搜索算法,利用矩阵的特殊性质(每行每列都是递增排序)进行目标值查找。通过从矩阵的右上角开始比较,根据大小关系决定是在当前列左移还是在当前行下移,直至找到目标值或确定不存在。
393

被折叠的 条评论
为什么被折叠?



