74、搜索二维矩阵

题目:

解答:

两次二分查找即可。如果出现down=-1,说明matrix[0][0]<target 那么所有数都小于target,return false即可。

第一次闭区间查找,最后upper=down+1,在down这一行查找即可。

如果出现upper越界,也就是down指向最后一行,只能说明matrix[m][0]>target,并不能说明最后一行所有数都大于target

第二次二分查找,如果没找到,循环结束后return false,否则找到时return true。

cpp 复制代码
class Solution {
public:
    bool searchMatrix(vector<vector<int>>& matrix, int target) {
        int m = matrix.size();
        int n = matrix[0].size();
        int upper = 0,down = m-1,left=0,right=n-1;
        while(upper<=down){
            int mid = upper+(down-upper)/2;
            if(matrix[mid][0]==target)
                return true;
            else if(matrix[mid][0]<target)
                upper = mid + 1;
            else
                down = mid - 1;
        }
        if(down == -1) return false;

        while(left<=right){
            int mid = left+(right-left)/2;
            if(matrix[down][mid]==target)
                return true;
            else if(matrix[down][mid]<target)
                left=mid+1;
            else 
                right=mid-1;
        }
        return false;
    }
};

时间复杂度O(log(mn))

空间复杂度O(1)

相关推荐
cd_949217212 小时前
2026年扫描电子显微镜选型指南:易姆科特的核心优势与产品矩阵解析
人工智能·线性代数·矩阵
smj2302_796826522 小时前
解决leetcode第3943题递增后的数对数量
数据结构·python·算法·leetcode
oo哦哦3 小时前
星链引擎矩阵系统深度解析:AI驱动下的全域智能营销SaaS新范式
大数据·人工智能·矩阵
炽烈小老头3 小时前
【每天学习一点算法 2026/05/25】矩阵中的最长递增路径
学习·算法·矩阵
oo哦哦3 小时前
轻量化内容中台如何破解企业矩阵运营困局?以星链引擎为例的技术解析
大数据·人工智能·矩阵
oo哦哦4 小时前
企业级矩阵管理中台:从“人海战术“到“AI智能增长“的架构演进与实践解析
人工智能·矩阵·架构·轻量化中台
叁散4 小时前
实验报告:5G 仿真环境与基本链路模拟
算法
从负无穷开始的三次元代码生活5 小时前
算法零碎灵感点分享
算法
染指11105 小时前
9.LangChain框架(实现RAG)
数据库·人工智能·算法·机器学习·ai·大模型
大数据三康5 小时前
在spyder进行的遗传算法练习
开发语言·python·算法