Search a 2D Matrix
Thoughts
Code
class Solution {
public boolean searchMatrix(int[][] matrix, int target) {
int m = matrix.length, n = m == 0 ? 0 : matrix[0].length;
int start = 0, end = m * n;
while (start < end) {
int mid = start + (end - start) / 2;
if (matrix[mid / n][mid % n] < target) {
start = mid + 1;
} else {
end = mid;
}
}
if (n == 0 || start == m * n || matrix[start / n][start % n] != target) {
return false;
} else {
return true;
}
}
}Analysis
Last updated