LeetCode hot100-240搜索二维矩阵 II

复制代码
class Solution {
public:
    bool searchMatrix(vector<vector<int>>& matrix, int target) {
        for (const auto& row: matrix) {
            auto it = lower_bound(row.begin(), row.end(), target);
            if (it != row.end() && *it == target) {
                return true;
            }
        }
        return false;
    }
};
复制代码
auto it = lower_bound(row.begin(), row.end(), target);
  • row:一个有序的 vector(如 vector<int>

  • lower_bound:二分查找算法,返回一个迭代器

  • auto:自动推导迭代器类型

  • it:指向第一个 >= target 的元素

  • 有序数组中查找第一个大于等于 target 的元素。

    class Solution {
    public:
    bool searchMatrix(vector<vector<int>>& matrix, int target) {
    int m = matrix.size(), n = matrix[0].size();
    int x = 0, y = n - 1;
    while (x < m && y >= 0) {
    if (matrix[x][y] == target) {
    return true;
    }
    if (matrix[x][y] > target) {
    --y;
    }
    else {
    ++x;
    }
    }
    return false;
    }
    };

从右上角开始查找

相关推荐
Q741_1473 小时前
力扣高频面试题详解 数组 链表 力扣 56.合并区间 力扣 160.相交链表 C++ 每日练习
c++·算法·leetcode·链表·数组·哈希
2301_793804693 小时前
C++中的备忘录模式
开发语言·c++·算法
ab1515173 小时前
3.23完成进阶45、84,二刷基础132、129
算法·深度优先·图论
CoovallyAIHub3 小时前
编码智能体做 CV 任务,实际能力到哪一步了?——五项视觉任务实测解读
深度学习·算法·计算机视觉
2501_945423543 小时前
C++编译期多态实现
开发语言·c++·算法
2401_879693873 小时前
设计模式在C++中的实现
开发语言·c++·算法
☆5663 小时前
C++中的代理模式高级应用
开发语言·c++·算法
2301_818419013 小时前
编译器命令选项优化
开发语言·c++·算法
m0_518019483 小时前
C++图形编程(OpenGL)
开发语言·c++·算法