240. Search a 2D Matrix II LeetCode Solution
In this guide, you will get 240. Search a 2D Matrix II LeetCode Solution with the best time and space complexity. The solution to Search a D Matrix II problem is provided in various programming languages like C++, Java, and Python. This will be helpful for you if you are preparing for placements, hackathons, interviews, or practice purposes. The solutions provided here are very easy to follow and include detailed explanations.
Table of Contents
- Problem Statement
- Complexity Analysis
- Search a D Matrix II solution in C++
- Search a D Matrix II solution in Java
- Search a D Matrix II solution in Python
- Additional Resources
Problem Statement of Search a D Matrix II
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 in ascending from left to right.
Integers in each column are sorted in ascending from top to bottom.
Example 1:
Input: matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 5
Output: true
Example 2:
Input: matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 20
Output: false
Constraints:
m == matrix.length
n == matrix[i].length
1 <= n, m <= 300
-109 <= matrix[i][j] <= 109
All the integers in each row are sorted in ascending order.
All the integers in each column are sorted in ascending order.
-109 <= target <= 109
Complexity Analysis
- Time Complexity: O(m + n)
- Space Complexity: O(1)
240. Search a 2D Matrix II LeetCode Solution in C++
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;
}
};
/* code provided by PROGIEZ */
240. Search a 2D Matrix II LeetCode Solution in Java
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;
}
}
// code provided by PROGIEZ
240. Search a 2D Matrix II LeetCode Solution in Python
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
# code by PROGIEZ
Additional Resources
- Explore all LeetCode problem solutions at Progiez here
- Explore all problems on LeetCode website here
Happy Coding! Keep following PROGIEZ for more updates and solutions.