AlgoMaster Logo

Search in 2D Matrix

matrix=[[1,3,5,7],[10,11,16,20],[23,30,34,60]],target=3
1public boolean searchMatrix(int[][] matrix, int target) {
2    int m = matrix.length;
3    int n = matrix[0].length;
4    int left = 0;
5    int right = m * n - 1;
6
7    while (left <= right) {
8        int mid = (left + right) / 2;
9        int row = mid / n;
10        int col = mid % n;
11
12        if (matrix[row][col] == target) {
13            return true;
14        } else if (matrix[row][col] < target) {
15            left = mid + 1;
16        } else {
17            right = mid - 1;
18        }
19    }
20
21    return false;
22}
0 / 9
13571011162023303460