王柳 发表于 2025-1-26 02:59:37

74. 搜索二维矩阵

https://i-blog.csdnimg.cn/direct/19d68b46b27245f48dc303540f6addf3.png
方法一:两次二分查找

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;
      });
      if (row == matrix.begin()) {
            return false;
      }
      --row;
      return binary_search(row->begin(), row->end(), target);
    }
};

方法二:一次二分查找 
class Solution {
public:
    bool searchMatrix(vector<vector<int>>& matrix, int target) {
      int m = matrix.size(), n = matrix.size();
      int low = 0, high = m * n - 1;
      while (low <= high) {
            int mid = (high - low) / 2 + low;
            int x = matrix;
            if (x < target) {
                low = mid + 1;
            } else if (x > target) {
                high = mid - 1;
            } else {
                return true;
            }
      }
      return false;
    }
};

leetcode题解

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 74. 搜索二维矩阵