class Solution {
public:
bool searchMatrix(vector<vector<int>>& matrix, int target) {
// 把矩阵转换为一维数组
// 一维id > 二维id / n, id % n
int m = matrix.size(), n = matrix[0].size();
int size = m * n;
int l = 0, r = size; // 左闭右开
while(l < r){
int mid = l + (r - l) / 2;
int x = matrix[mid / n][mid % n];
if(x >= target){
r = mid;
} else {
l = mid + 1;
}
}
if(l >= size) return false;
return matrix[l / n][l % n] == target;
}
};