74. 搜索二维矩阵

方法一:两次二分查找
cpp 复制代码
class Solution {
public:
    bool searchMatrix(vector<vector<int>> matrix, int target) {
        auto row = upper_bound(matrix.begin(), matrix.end(), target, [](const int b, const vector<int> &a) {
            return b < a[0];
        });
        if (row == matrix.begin()) {
            return false;
        }
        --row;
        return binary_search(row->begin(), row->end(), target);
    }
};

方法二:一次二分查找

cpp 复制代码
class Solution {
public:
    bool searchMatrix(vector<vector<int>>& matrix, int target) {
        int m = matrix.size(), n = matrix[0].size();
        int low = 0, high = m * n - 1;
        while (low <= high) {
            int mid = (high - low) / 2 + low;
            int x = matrix[mid / n][mid % n];
            if (x < target) {
                low = mid + 1;
            } else if (x > target) {
                high = mid - 1;
            } else {
                return true;
            }
        }
        return false;
    }
};

leetcode题解

相关推荐
小宋加油啊15 小时前
线性代数“秩”(LORA)
线性代数
Tisfy17 小时前
LeetCode 1351.统计有序矩阵中的负数:O(m+n)时间复杂度——抽象题解
算法·leetcode·矩阵·题解·遍历
式51617 小时前
线性代数(十)四个基本子空间与矩阵空间
线性代数
甄心爱学习1 天前
SVD求解最小二乘(手写推导)
线性代数·算法·svd
RedMery1 天前
厄米特矩阵的性质
线性代数·矩阵
如果你想拥有什么先让自己配得上拥有2 天前
数学思想和数学思维分别都有什么?
线性代数·算法·机器学习
Venus-ww3 天前
对多连杆机器人进行运动学正解与逆解的建模过程
线性代数·机器人
前端小白在前进3 天前
力扣刷题:矩阵重叠
算法·leetcode·矩阵
NBD诺必达3 天前
TikTok直播矩阵运营中的IP风险规避与权重提升技术指南
矩阵·ip·tiktok矩阵·矩阵运营
qq_430855883 天前
线代第二章矩阵第五、六、七节矩阵的转置、方阵的行列式、方阵的伴随矩阵
线性代数·算法·矩阵