Here, We see Search a 2D Matrix LeetCode Solution. This Leetcode problem is done in many programming language like C++, Java, JavaScript, Python, etc. with different approaches.
List of all LeetCode Solution
![Search a 2D Matrix LeetCode Solution](https://i0.wp.com/totheinnovation.com/wp-content/uploads/2024/02/LeetCode-Problem-Solution.png?resize=200%2C200&ssl=1)
Search a 2D Matrix LeetCode Solution
Table of Contents
Problem Statement
Write an efficient algorithm that searches for a value target
in an m x n
integer matrix matrix
. This matrix has the following properties:
- Integers in each row are sorted from left to right.
- The first integer of each row is greater than the last integer of the previous row.
Example 1: Input: matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3 Output: true Example 2: Input: matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 13 Output: false
Search a 2D Matrix Leetcode Solution C++
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();
int start = 0, end = m*n - 1;
while(start <= end)
{
int mid = start + (end - start)/2;
int e = matrix[mid/n][mid%n];
if(target < e)
{
end = mid - 1;
}
else if(target > e)
{
start = mid + 1;
}
else
{
return true;
}
}
return false;
}
};
Code language: PHP (php)
Search a 2D Matrix Leetcode Solution Java
class Solution {
public boolean searchMatrix(int[][] matrix, int target) {
int i = 0, j = matrix[0].length - 1;
while (i < matrix.length && j >= 0) {
if (matrix[i][j] == target) {
return true;
} else if (matrix[i][j] > target) {
j--;
} else {
i++;
}
}
return false;
}
}
Code language: PHP (php)
Search a 2D Matrix Leetcode Solution JavaScript
/**
* @param {number[][]} matrix
* @param {number} target
* @return {boolean}
*/
var searchMatrix = function(matrix, target) {
if (!matrix.length || !matrix[0].length) return false;
let row = 0;
let col = matrix[0].length - 1;
while (col >= 0 && row <= matrix.length - 1) {
if (matrix[row][col] === target) return true;
else if (matrix[row][col] > target) col--;
else if (matrix[row][col] < target) row++;
}
return false;
};
Code language: JavaScript (javascript)
Search a 2D Matrix Leetcode Solution Python
class Solution(object):
def searchMatrix(self, matrix, target):
if not matrix:
return False
row = len(matrix) # Number of Rows of the matrix...
col = len(matrix[0]) # Number of Columns of the matrix...
beg = 0
end = row*col
while beg < end:
mid = beg + (end - beg) // 2
idx = matrix[mid / col][mid % col];
if idx == target:
return True
if idx < target:
beg = mid + 1
else:
end = mid
return False