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

相关推荐
another heaven7 分钟前
【C/C++ C++ 新特性中的那些内存优化的特性】
c语言·开发语言·c++
ysu_031418 分钟前
【C++ 进阶之路】(二)从内联函数到类与对象:深挖内存对齐、this 指针与三大默认成员函数
开发语言·数据结构·c++·笔记·面向对象·this
布莱克60524 分钟前
C++ 中 set 与 map 的区别详解
开发语言·c++·算法·哈希
我叫洋洋28 分钟前
Allegro 画布“垃圾显示“清理指南:把板子调成干净工作台(实战总结)
c语言·c++·单片机·嵌入式硬件·eda·嘉立创
jimy11 小时前
构造函数表达式的值类别是:prvalue
开发语言·c++
wuminyu1 小时前
JVM规范学习总结-Class文件结构
java·linux·c语言·jvm·c++
多弗朗皮卡丘1 小时前
C++特殊类设计
开发语言·c++·设计模式
茉莉玫瑰花茶2 小时前
线性代数 [ 矩阵与线性变化 ]
线性代数·math·1024程序员节
茉莉玫瑰花茶2 小时前
线性代数 [ 矩阵乘法与线性变换复合的联系 ]
python·线性代数·math
Yyyyyy~2 小时前
【C++】String
c++