func findNumberIn2DArray(_ matrix: [[Int]], _ target: Int) -> Bool {
if matrix.count <= 0 {
return false
}
let col = matrix.count
let row = matrix[0].count
if row <= 0 {
return false
}
var i = 0
var j = row - 1
while i < col, i >= 0, j >= 0, j < row {
if matrix[i][j] > target {
j-=1
} else if matrix[i][j] < target {
i+=1
} else {
return true
}
}
return false
}
未通过代码:
Swift 的for循环只能正序,可以用reversed()逆序,但是提交时报错
Fatal error: Can't form Range with upperBound < lowerBound
func findNumberIn2DArrayOne(_ matrix: [[Int]], _ target: Int) -> Bool {
if matrix.count <= 0 {
return false
}
let col = matrix.count
let row = matrix[0].count
for var i in 0...(col-1) {
for var j in (0...(row-1)).reversed() {
if matrix[i][j] > target {
j-=1
} else if matrix[i][j] < target {
i+=1
} else {
return true
}
}
}
return false
}