leetcode刷题笔记七十四题 搜索二维数组
leetcode刷题笔记七十四题 搜索二维数组
源地址:74. 搜索二维矩阵
问题描述:
编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:
每行中的整数从左到右按升序排列。
每行的第一个整数大于前一行的最后一个整数。
示例 1:输入:
matrix = [
[1, 3, 5, 7],
[10, 11, 16, 20],
[23, 30, 34, 50]
]
target = 3
输出: true
示例 2:输入:
matrix = [
[1, 3, 5, 7],
[10, 11, 16, 20],
[23, 30, 34, 50]
]
target = 13
输出: false
/**
由整个矩阵是递增关系,通过比较每一行最右侧值与target,获取第一个大于target的行尾,遍历该行,有则返回true,无则返回false
*/
object Solution {
def searchMatrix(matrix: Array[Array[Int]], target: Int): Boolean = {
val rowLen = matrix.length
if(rowLen == 0) return false
val colLen = matrix(0).length
if(colLen == 0) return false
for( i <- 0 to rowLen-1){
if(matrix(i)(colLen-1) >= target){
for(j <- 0 to colLen-1){
if(matrix(i)(j) == target) return true
}
return false
}
}
return false
}
}