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

  1. Problem Statement
  2. Complexity Analysis
  3. Search a D Matrix II solution in C++
  4. Search a D Matrix II solution in Java
  5. Search a D Matrix II solution in Python
  6. Additional Resources
240. Search a 2D Matrix II LeetCode Solution image

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

Happy Coding! Keep following PROGIEZ for more updates and solutions.