Search in a 2D matrix
The problem
Given a 2-D array mat where the elements of each row are sorted in non-decreasing order, and the first element of a row is greater than the last element of the previous row (if it exists), and an integer target, determine if the target exists in the given mat or not.
Input: mat = [ [1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12] ], target = 8 Output: True Explanation: The target = 8 exists in the 'mat' at index (1, 3).
Input: mat = [ [1, 2, 4], [6, 7, 8], [9, 10, 34] ], target = 78 Output: False Explanation: The target = 78 does not exist in the 'mat'. Therefore in the output, we see 'false'.
Input: mat = [ [1, 2, 4], [6, 7, 8], [9, 10, 34] ], target = 7
- n == mat.length
- m == mat[i].length
- 1 <= m, n <= 100
- -104 <= mat[i][j], target <= 104
cpp
class Solution{
public:
bool searchMatrix(vector<vector<int>> &mat, int target){
}
};java
class Solution {
public boolean searchMatrix(int[][] mat, int target) {
}
}python
class Solution:
def searchMatrix(self, mat, target):javascript
class Solution {
searchMatrix(mat, target) {
}
}csharp
class Solution
{
public bool SearchMatrix(List<List<int>> mat, int target)
{
// Write your code here
}
}go
func searchMatrix(mat [][]int, target int) bool {
}Stuck? Show a way to structure it+
- 01Treat the matrix as a sorted array of length m*n.
- 02Binary-search indices from 0 to m*n-1.
- 03Map an index to row and column with division and modulo.
- 04Compare and narrow normally.
- 05Handle empty dimensions first.
Reference answer
Then expect these follow-ups
How do you solve the row-and-column sorted version?
Tests: staircase search
How do duplicates affect the result?
Tests: binary search
Hiring now
Visa has 638 open roles right now
landed applies to roles like these for you, on each company’s own site, with answers written for the role.
Software Engineer Intern
GB - London, United Kingdom
Sr. Software Engineer (3+ yrs, DevOps, Cloud, Coding, Infra)
IN - Bengaluru, India
Sr Software Engineer (3-5 yrs of exp - Full stack development, Java, React, Gen AI)
IN - Bengaluru, India
Next question