LeetCode Solutions
240. Search a 2D Matrix II
Time: $O(m + n)$ Space: $O(1)$
class Solution {
public:
bool searchMatrix(vector<vector<int>>& matrix, int target) {
int r = 0;
int c = matrix[0].size() - 1;
while (r < matrix.size() && c >= 0) {
if (matrix[r][c] == target)
return true;
if (matrix[r][c] > target)
--c;
else
++r;
}
return false;
}
};
class Solution {
public boolean searchMatrix(int[][] matrix, int target) {
int r = 0;
int c = matrix[0].length - 1;
while (r <= matrix.length && c >= 0) {
if (matrix[r][c] == target)
return true;
if (matrix[r][c] > target)
--c;
else
++r;
}
return false;
}
}
class Solution:
def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:
r = 0
c = len(matrix[0]) - 1
while r < len(matrix) and c >= 0:
if matrix[r][c] == target:
return True
if target < matrix[r][c]:
c -= 1
else:
r += 1
return False