搜索二维矩阵Ⅱ 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)

相关推荐
进击中的小龙9 小时前
在vscode下的cmake项目里传参调试c++命令行程序
c++·vscode
奔跑吧邓邓子11 小时前
【C++实战(74)】深入C++安全编程:密码学实战之旅
c++·安全·实战·密码学·安全编程
明天会有多晴朗11 小时前
C语言入门教程(第1讲):最通俗的C语言常见概念详解与实战讲解
c语言·开发语言·c++
Larry_Yanan11 小时前
QML学习笔记(二十四)QML的Keys附加属性
c++·笔记·qt·学习·ui
龙木之森12 小时前
纯 C++ 开发的 Telegram Bot 框架
c++·tui·telegram·bot
hqwest13 小时前
QT肝8天09--用户列表
开发语言·c++·qt·上位机·qt开发
眠りたいです13 小时前
基于脚手架微服务的视频点播系统-脚手架开发部分-brpc中间件介绍与使用及二次封装
c++·微服务·中间件·rpc·架构·brpc
flashlight_hi14 小时前
LeetCode 分类刷题:74. 搜索二维矩阵
python·算法·leetcode·矩阵
明天会有多晴朗15 小时前
深度剖析 C++ 之内存管理篇
c语言·开发语言·c++
Starry_hello world16 小时前
C++ 二分算法(1)
c++·算法·有问必答