题目链接
搜索二维矩阵 II文章来源:https://www.toymoban.com/news/detail-692926.html
题目描述
文章来源地址https://www.toymoban.com/news/detail-692926.html
注意点
- 矩阵具有以下特性:
每行的元素从左到右升序排列。
每列的元素从上到下升序排列。
解答思路
- 最初想到使用深度优先遍历+剪枝实现,但是运行后超出时间限制了
- 可以直接遍历整个矩阵查找,虽然不超时但是耗时毕竟高
- 从右上角开始遍历矩阵,也就是x最初为0,y最初为col - 1,从右上角开始毕竟matrix[x][y]与target之间的关系,直到超出边界
(1)如果相等,说明已搜索到,直接返回true
(2)如果matrix[x][y]小于target,则应该往下进行搜索,将x + 1
(3)如果matrix[x][y]大于target,则应该往左进行搜索,将y - 1
代码
class Solution {
public boolean searchMatrix(int[][] matrix, int target) {
int row = matrix.length, col = matrix[0].length;
int x = 0, y = col - 1;
while (x < row && y >= 0) {
if (matrix[x][y] == target) {
return true;
}
if (matrix[x][y] < target) {
x++;
} else {
y--;
}
}
return false;
}
}
关键点
- 从右上角开始遍历整个矩阵,想当与Z字形查找
到了这里,关于搜索二维矩阵 II的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!