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;
    }
相关推荐
㓗冽3 分钟前
2026.03.27(第三天)
数据结构·c++·算法
Magic--3 分钟前
经典概率题:飞机座位分配问题(LeetCode 1227)超详细解析
算法·leetcode·职场和发展
SWAGGY..26 分钟前
【C++初阶】:(5)内存管理
java·c++·算法
liulilittle1 小时前
SQLite3增删改查(C
c语言·开发语言·数据库·c++·sqlite
CVer儿1 小时前
c++的移动语义
c++
We་ct1 小时前
LeetCode 4. 寻找两个正序数组的中位数:二分优化思路详解
前端·数据结构·算法·leetcode·typescript·二分
逻辑君2 小时前
Research in Brain-inspired Computing [7]-带关节小人(3个)推箱的类意识报告
c++·人工智能·神经网络·机器学习
txinyu的博客2 小时前
解析muduo源码之 HttpResponse.h & HttpResponse.cc
c++
小白学习记录555553 小时前
vs2019无法自动补全QT代码
c++
小糯米6013 小时前
C++ 单调栈原理与模板
开发语言·c++·算法