题目:
编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:
- 每行的元素从左到右升序排列。
- 每列的元素从上到下升序排列。
代码:
- 摆烂暴力破解:
class Solution {
func searchMatrix(_ matrix: [[Int]], _ target: Int) -> Bool {
for i in 0 ..< matrix.count {
for j in 0 ..< matrix[i].count {
if (matrix[i][j] == target) {
return true
}
}
}
return false
}
}
- 分治法:
class Solution {
func searchMatrix(_ matrix: [[Int]], _ target: Int) -> Bool {
var i = matrix.count - 1
var j = 0
while (i >= 0 && j < matrix[0].count) {
if (matrix[i][j] < target) {
i += 1
} else if (matrix[i][j] > target) {
j -= 1
} else {
return true
}
}
return false
}
}