LeetCode-in-All

74. Search a 2D Matrix

Medium

Write an efficient algorithm that searches for a value target in an m x n integer matrix matrix. This matrix has the following properties:

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:

Solution

/**
 * @param {number[][]} matrix
 * @param {number} target
 * @return {boolean}
 */
var searchMatrix = function(matrix, target) {
    const endRow = matrix.length
    const endCol = matrix[0].length
    let targetRow = 0
    let result = false

    for (let i = 0; i < endRow; i++) {
        if (matrix[i][endCol - 1] >= target) {
            targetRow = i
            break
        }
    }

    for (let i = 0; i < endCol; i++) {
        if (matrix[targetRow][i] === target) {
            result = true
            break
        }
    }

    return result
};

export { searchMatrix }