0%

74. Search a 2D Matrix

O(log(mn)) time O(1) space

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Solution {
public:
bool searchMatrix(vector<vector<int>>& matrix, int target) {
if (matrix.empty() || matrix[0].empty())
return false;
int m = matrix.size(), n = matrix[0].size(), l = 0, r = m * n - 1;
while (l <= r) {
int m = l + (r - l) / 2;
int x = matrix[m / n][m % n];
if (x == target) return true;
if (x < target) {
l = m + 1;
} else {
r = m - 1;
}
}
return false;
}
};