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

相关推荐
在路上看风景5 小时前
19. 成员初始化列表和初始化对象
c++
zmzb01035 小时前
C++课后习题训练记录Day98
开发语言·c++
念风零壹6 小时前
C++ 内存避坑指南:如何用移动语义和智能指针解决“深拷贝”与“内存泄漏”
c++
孞㐑¥6 小时前
算法——BFS
开发语言·c++·经验分享·笔记·算法
3GPP仿真实验室6 小时前
【MATLAB源码】CORDIC-QR :基于Cordic硬件级矩阵QR分解
开发语言·matlab·矩阵
Σίσυφος19007 小时前
PCL 法向量估计-PCA邻域点(经典 kNN 协方差)的协方差矩阵
人工智能·线性代数·矩阵
MZ_ZXD0018 小时前
springboot旅游信息管理系统-计算机毕业设计源码21675
java·c++·vue.js·spring boot·python·django·php
A星空1239 小时前
一、Linux嵌入式的I2C驱动开发
linux·c++·驱动开发·i2c
凡人叶枫9 小时前
C++中智能指针详解(Linux实战版)| 彻底解决内存泄漏,新手也能吃透
java·linux·c语言·开发语言·c++·嵌入式开发
会叫的恐龙9 小时前
C++ 核心知识点汇总(第六日)(字符串)
c++·算法·字符串