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:
m == matrix.length
n == matrix[i].length
1 <= m, n <= 100
-104 <= matrix[i][j], target <= 104
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
}
}