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题解

相关推荐
Magnum Lehar6 小时前
3d游戏引擎的math矩阵实现
线性代数·矩阵·游戏引擎
HappyAcmen11 小时前
线代第二章矩阵第九、十节:初等变换、矩阵的标准形、阶梯形与行最简阶梯形、初等矩阵
笔记·学习·线性代数·矩阵
fancy16616611 小时前
搜索二维矩阵 II
c++·算法·矩阵
人类发明了工具14 小时前
【优化算法】协方差矩阵自适应进化策略(Covariance Matrix Adaptation Evolution Strategy,CMA-ES)
线性代数·算法·矩阵·cma-es
赵青临的辉20 小时前
基础数学:线性代数与概率论在AI中的应用
人工智能·线性代数·概率论
程序员莫小特1 天前
【GESP真题解析】第 20 集 GESP 二级 2025 年 3 月编程题 1:等差矩阵
c语言·数据结构·c++·算法·青少年编程·矩阵
csdnzzt1 天前
CUDA编程——性能优化基本技巧
性能优化·矩阵·cuda
kovlistudio2 天前
机器学习第八讲:向量/矩阵 → 数据表格的数学表达,如Excel表格转数字阵列
机器学习·矩阵·excel
伊织code2 天前
PyTorch API 7 - TorchScript、hub、矩阵、打包、profile
人工智能·pytorch·python·ai·矩阵·api
英英_2 天前
MATLAB中矩阵和数组的区别
机器学习·matlab·矩阵