LeetCode74. 搜索二维矩阵(2024冬季每日一题 6)

给你一个满足下述两条属性的 m x n 整数矩阵:

  • 每行中的整数从左到右按非严格递增顺序排列。
  • 每行的第一个整数大于前一行的最后一个整数。

给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则,返回 false 。

示例 1:

输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3

输出:true

示例 2:

输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 13

输出:false

提示:

m = = m a t r i x . l e n g t h m == matrix.length m==matrix.length
n = = m a t r i x [ i ] . l e n g t h n == matrix[i].length n==matrix[i].length
1 < = m , n < = 100 1 <= m, n <= 100 1<=m,n<=100
− 1 0 4 < = m a t r i x [ i ] [ j ] , t a r g e t < = 1 0 4 -10^4 <= matrix[i][j], target <= 10^4 −104<=matrix[i][j],target<=104


思路:

  • 从右上角位置开始搜索
  • 如果目标值大于当前值,则向下走一格(走到下一行)
  • 如果目标值小于当前值,则向左走一列(走到前一列)
  • 直到当前值等于目标值,则返回 true
  • 如果走出了方格边界,则返回 false
cpp 复制代码
class Solution {
public:
    bool searchMatrix(vector<vector<int>>& matrix, int target) {
        int n = matrix.size(), m = matrix[0].size();
        int x = 0, y = m - 1;
        while(true){
            if(matrix[x][y] == target) return true;
            else if(matrix[x][y] < target) x++;
            else y--;
            if(x >= n || y < 0) break;
        }
        return false;
    }
};
相关推荐
劈星斩月1 小时前
线性代数-3Blue1Brown《线性代数的本质》特征向量与特征值(12)
线性代数·特征值·特征向量·特征方程
池央3 小时前
ops-nn 算子库中的数据布局与混合精度策略:卷积、矩阵乘法与 RNN 的优化实践
rnn·线性代数·矩阵
深鱼~5 小时前
大模型底层算力支撑:ops-math在矩阵乘法上的优化
人工智能·线性代数·矩阵·cann
Zfox_5 小时前
CANN PyPTO 编程范式深度解析:并行张量与 Tile 分块操作的架构原理、内存控制与流水线调度机制
线性代数·矩阵·架构
TechWJ5 小时前
catlass深度解析:Ascend平台的高性能矩阵运算模板库
线性代数·矩阵·ascend·cann·catlass
deep_drink21 小时前
【基础知识一】线性代数的核心:从矩阵变换到 SVD 终极奥义
线性代数·机器学习·矩阵
数智工坊1 天前
【数据结构-特殊矩阵】3.5 特殊矩阵-压缩存储
数据结构·线性代数·矩阵
AI科技星1 天前
张祥前统一场论核心场方程的经典验证-基于电子与质子的求导溯源及力的精确计算
线性代数·算法·机器学习·矩阵·概率论
deep_drink1 天前
【基础知识二】彻底读懂拉普拉斯矩阵 (Laplacian)
人工智能·深度学习·线性代数·矩阵
sonadorje1 天前
标量投影和向量投影
线性代数