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 == matrixi.length n==matrixi.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 <= matrixij, target <= 10^4 −104<=matrixij,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;
    }
};
相关推荐
救救孩子把6 小时前
88-机器学习与大模型开发数学教程-8-6 矩阵分解与低秩近似在推荐系统中的应用
人工智能·机器学习·矩阵
不辣的皮蛋君6 小时前
2026年短视频矩阵系统实战:如何用工具实现多平台一键分发,效率提升300%
人工智能·线性代数·矩阵
じ☆冷颜〃13 小时前
Picard-Lindelöf 定理的多视角证明、推广与加权范数方法
经验分享·笔记·线性代数·数学建模
San813_LDD16 小时前
[量化]《从 L1/L2 缓存到 SIMD:矩阵乘法性能优化完全指南》
线性代数·矩阵·架构
小欣加油16 小时前
leetcode542 01矩阵
数据结构·c++·算法·leetcode·矩阵·bfs
armwind16 小时前
openISP学习7-CCM — Color Correction Matrix(色彩校正矩阵)
python·学习·矩阵
AI科技星1 天前
精细结构常数α的多维度物理比值特性及空间螺旋模型研究
人工智能·线性代数·架构·概率论·学习方法
AI科技星2 天前
基于奇合数边界的离散解析数论与双螺旋宇大统一体系(中英文双语纯净终稿)
人工智能·线性代数·架构·概率论·学习方法
写代码写到手抽筋2 天前
PMI预编码矩阵全解:矩阵含义\+系统作用\+实战案例
线性代数·矩阵·预编码算法
chsmiao2 天前
深度学习之线性代数
人工智能·深度学习·线性代数