力扣 240. 搜索二维矩阵 II

69 阅读1分钟

🔗 leetcode.cn/problems/se…

题目

  • 给一个 m*n 的矩阵,判断是否存在数字 target
  • 矩阵每行和每列元素都是递增

思路

  • 按行二分查找

代码

class Solution {
public:
    bool binary_search(vector<int>& vec, int target) {
        int l = 0, r = vec.size() - 1;
        while (l <= r) {
            int mid = (l + r) /2 ;
            if (vec[mid] == target) return true;
            if (vec[mid] < target) l = mid + 1;
            else r = mid - 1;
        }
        return false;
    }
    bool searchMatrix(vector<vector<int>>& matrix, int target) {   
        bool ans = false;
        for (int i = 0; i < matrix.size(); i++) {
            ans = binary_search(matrix[i], target);
            if (ans) return ans;
        }
        return ans;
    }
};