题目地址:
https://leetcode.com/problems/search-a-2d-matrix-ii/
给定一个矩阵,满足每行都是单调增的,每列也是单调增的。另给定一个数,问该矩阵是否包含这个数。基本思路是,选定矩阵最左下角的那个数,如果比大,由于所在列在上方的数都比小,所以不用再搜索,那就向的右边走一步;如果比小,由于所在行在右边的数都比大,所以不用再搜索,那就向的上边走一步。如此这般,直到整个矩阵搜索完毕。
例如,我们要在下面的矩阵里搜索:
路径是:
class Solution {
public boolean searchMatrix(int[][] matrix, int target) {
if (matrix == null || matrix.length == 0) {
return false;
}
int x = matrix.length - 1;
int y = 0;
while (x >= 0 && y < matrix[0].length) {
if (matrix[x][y] < target) {
y++;
} else if (matrix[x][y] > target) {
x--;
} else {
return true;
}
}
return false;
}
}
时间复杂度,为矩阵元素个数。
来源:CSDN
作者:edWard的算法世界
链接:https://blog.csdn.net/qq_46105170/article/details/103946346