Write an efficient algorithm that searches for a value target in an m x n
integer matrix matrix
. This matrix has the following properties:
将整个矩阵当成一个序列,然后进行二分
class Solution { public: bool searchMatrix(vector<vector<int>>& matrix, int target) { int n = matrix.size(); int m = matrix[0].size(); int l = 0, r = n*m-1; int mid; while(l<r){ mid = (l+r)>>1; if(matrix[mid/m][mid%m]<target)l = mid+1; else r = mid; } return matrix[r/m][r%m]==target; } };