240 搜索二维矩阵 II

解题思路:
\qquad 解这道题最重要的是如何利用从左到右、从上到下为升序的性质,快速找到目标元素。
\qquad 如果从左上角开始查找,如果当前matrix[i][[j] < target,可以向右、向下扩展元素都是升序,但选择哪个方向是不明确的,很容易陷入局部最优而找到不到全局最优解。
\qquad 所以需要改变查找的起始位置,使一个方向为升序,而另一个为降序,比如右上角,向下为升序而向左为降序。当matrix[i][j] > target时,向左移动;当matrix[i][j] < target时,向下移动,不断逼近目标,且遍历路径不会重复,时间复杂度为 O ( m + n ) O(m+n) O(m+n)。

cpp 复制代码
bool searchMatrix(vector<vector<int>>& matrix, int target) {
        int i = 0, j = matrix[0].size()-1;
        while(i < matrix.size() && j >= 0)
        {
            if(matrix[i][j] == target) return true;
            else if(matrix[i][j] < target) i++;
            else j--;
        }
        return false;
    }
相关推荐
不会代码的小猴5 分钟前
C++的第十三天笔记
c++·笔记·算法
lxh01138 分钟前
合并区间题解
数据结构·算法·leetcode
OliverH-yishuihan10 分钟前
Windows上VScode编译C++
c++·vscode
leoufung21 分钟前
LeetCode 39. Combination Sum 题解(回溯 / DFS)
算法·leetcode·深度优先
Tisfy23 分钟前
LeetCode 3577.统计计算机解锁顺序排列数:脑筋急转弯(组合数学)
算法·leetcode·题解·组合数学·脑筋急转弯
圣保罗的大教堂23 分钟前
leetcode 3577. 统计计算机解锁顺序排列数 中等
leetcode
(●—●)橘子……26 分钟前
3643.垂直翻转子矩阵 练习理解
笔记·python·学习·算法·leetcode·矩阵
小白程序员成长日记28 分钟前
2025.12.10 力扣每日一题
算法·leetcode
木心爱编程29 分钟前
Qt C++ Excel 文件解析与导出实战:QAxObject 封装工具类
c++·qt·数据库开发
爱装代码的小瓶子30 分钟前
【c++知识铺子】map和set的底层-红黑树
java·开发语言·c++