LeetCode-in-All

74. Search a 2D Matrix

Medium

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,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

object Solution {
    def searchMatrix(matrix: Array[Array[Int]], target: Int): Boolean = {
        var i = matrix.length - 1
        val n = matrix.last.length - 1
        var j = 0
        while (i >= 0 && j <= n) {
            if (matrix(i)(j) == target) return true
            else if (matrix(i)(j) > target) i -= 1
            else j += 1
        }
        false
    }
}