题目
编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:
- 每行的元素从左到右升序排列。
- 每列的元素从上到下升序排列。
分析
技巧题,类似于九宫格走路,典型的贪心问题。从右上角开始走,若大于target 往左走,若小于target,往下走,若走出边界还没遇到target,则矩阵没有目标值
fun searchMatrix(matrix: Array<IntArray>, target: Int): Boolean {
if (matrix.isEmpty()) return false
var i = 0
var j = matrix[0].lastIndex
while (j >= 0 && i < matrix.size) {
when {
matrix[i][j] == target -> break
matrix[i][j] < target -> i++
matrix[i][j] > target -> j--
}
}
return j >= 0 && i < matrix[0].size
}
关于我
一个希望友友们能提出建议的代码下毒糕手