Last updated: Nov 02, 2022
Difficulty : medium
Runtime : 83 ms Faster than 76.02 %
Memory : 41.9 mb Lesser than 78.04 %

74. Search a 2D Matrix

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

Constraints:

  • m == matrix.length
  • n == matrix[i].length
  • 1 <= m, n <= 100
  • -104 <= matrix[i][j], target <= 104

Solution:

/**
 * @param {number[][]} matrix
 * @param {number} target
 * @return {boolean}
 */
var searchMatrix = function(matrix, target) {
    for (var arr of matrix) {
        if(target < arr[0]) continue;
        var r = arr.length - 1;
        while (r >= 0 && target >= arr[0]) {
            if(arr[r] === target) {
                return true
            }
            r--;
        }
    }
    return false
};