

力扣 0240 搜索二维矩阵II
source link: https://backtraxe.github.io/posts/%E5%8A%9B%E6%89%A3-0240-%E6%90%9C%E7%B4%A2%E4%BA%8C%E7%BB%B4%E7%9F%A9%E9%98%B5ii/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

反对角线查找
沿着反对角线进行查找,可以右上到左下,也可以反过来,以右上到左下为例:
- 如果当前元素与 target 相等,返回 true;
- 如果当前元素大于 target,由于每一列的元素都是升序排列的,那么当前元素所在列往下所有元素全都大于 target,因此考虑左侧的元素;
- 如果当前元素小于 target,由于每一行的元素都是升序排列的,那么当前元素所在行往左所有元素全都小于 target,因此考虑下方的元素。
class Solution {
public:
bool searchMatrix(vector<vector<int>>& matrix, int target) {
int m = matrix.size();
int n = matrix[0].size();
// 右上角
int x = 0, y = n - 1;
while (x < m && y >= 0) {
if (matrix[x][y] == target) return true;
// 先左
else if (matrix[x][y] > target) y--;
// 后下
else x++;
}
return false;
}
};
复杂度分析
- 时间复杂度:$O(m + n)$
- 空间复杂度:$O(1)$
Recommend
-
47
-
33
原题 以 Unix 风格给出一个文件的绝对路径,你需要简化它。或者换句话说,将其转换为规范路径。 在 Unix 风格的文件系统中,一个点(.)表示当前目录本身;此外,两个点 (..) 表示将目录切换到上一级(指向父目录)...
-
40
原题 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例: 输入: [ [1,3,1], [1,5,1], [4,...
-
31
原题 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 ...
-
10
【LeetCode每日一题】74.搜索二维矩阵.md 发表于 202...
-
12
【LeetCode每日一题】240.搜索二维矩阵II.md 发表于...
-
4
本文记录作者刷题过程中与二维矩阵相关的题目。 一、蛇形遍历矩阵 HJ35 蛇形矩阵 #include <bits/stdc++.h> using namespace std; int main(){ // 获取输入...
-
4
日拱算法:搜索二维矩阵 II 原创 掘金安东尼 2022-07-01 14:46:14...
-
7
C++ 练气期之二维数组与矩阵运算 C++中的...
-
9
360GPT大模型产品矩阵“360智脑”落地搜索场景,将面向企业用户开放内测 原创 蓝鲸TMT 王雅迪 · 2023-04-09 12:39:39 阅 2.5w 今日,360官方宣布,4月16日,基于360GPT大模型开发的人工智能产品矩阵“36...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK