Tcdian / keep

今天不想做,所以才去做。
MIT License
5 stars 1 forks source link

74. Search a 2D Matrix #339

Open Tcdian opened 3 years ago

Tcdian commented 3 years ago

74. Search a 2D Matrix

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

Example 1

Input: matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,50]], target = 3
Output: true

Example 2

Input: matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,50]], target = 13
Output: false

Example 3

Input: matrix = [], target = 0
Output: false

Constraints

Tcdian commented 3 years ago

Solution

function searchMatrix(matrix: number[][], target: number): boolean {
    if (_.isEmpty(matrix) || _.isEmpty(_.first(matrix))) {
        return false;
    }
    let x = 0;
    let y = matrix[0].length - 1;
    while (x < matrix.length && y >= 0) {
        if (matrix[x][y] < target) {
            x++;
        } else if (matrix[x][y] > target) {
            y--;
        } else {
            return true;
        }
    }
    return false;
};