搜索二维矩阵Ⅱ C++

编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:

每行的元素从左到右升序排列。

每列的元素从上到下升序排列。

cpp 复制代码
class Solution {
public:
    bool searchMatrix(vector<vector<int>>& matrix, int target) {
        int rows = matrix.size();      // 行数
        int cols = matrix[0].size();   // 列数
        int x=0;
        int y=cols-1;
        // 从右上角开始
        while(x<rows && y>=0){
            if(matrix[x][y] == target)     // 找到,返回
                return true;
            else if(matrix[x][y] > target)   // 当前值比目标值大,则继续往左找
                y--;
            else if(matrix[x][y] < target)   // 当前值比目标值小,则继续往下找
                x++;
        }
        return false;
    }
};

时间复杂度O(m+n)

相关推荐
m0_561359677 分钟前
代码热更新技术
开发语言·c++·算法
兩尛13 分钟前
c++知识点1
java·开发语言·c++
冉佳驹21 分钟前
C++11 ——— 列表初始化、移动语义、可变参数模板、lamdba表达式、function包装器和bind包装器
c++·可变参数模板·移动构造·移动赋值·function包装器·bind包装器·lamdba表达式
xu_yule33 分钟前
算法基础—组合数学
c++·算法
Tansmjs1 小时前
C++中的工厂模式变体
开发语言·c++·算法
naruto_lnq1 小时前
多平台UI框架C++开发
开发语言·c++·算法
爱装代码的小瓶子1 小时前
【C++与Linux基础】文件篇(8)磁盘文件系统:从块、分区到inode与ext2
linux·开发语言·c++
naruto_lnq1 小时前
分布式日志系统实现
开发语言·c++·算法
Zsy_0510031 小时前
【C++】stack、queue、容器适配器
开发语言·c++
星火开发设计1 小时前
命名空间 namespace:解决命名冲突的利器
c语言·开发语言·c++·学习·算法·知识