给定一个
的整形矩阵matrix和一个整数K, matrix的每一行和每一列都是排好序的。
实现一个函数,判断K是否在matrix中
[要求]
时间复杂度为
,额外空间复杂度为
。
第一行有三个整数N, M, K
接下来N行,每行M个整数为输入的矩阵
若K存在于矩阵中输出"Yes",否则输出"No"
2 4 5 1 2 3 4 2 4 5 6
Yes
2 4 233 1 2 3 4 2 4 5 6
No
package main
import (
"fmt"
)
func main() {
var (
N int
M int
K int
n int
)
fmt.Scan(&N,&M,&K)
nums := make([][]int,N)
for i:=0;i<N;i++ {
nums[i] = make([]int,M)
for j:=0;j<M;j++ {
fmt.Scan(&n)
nums[i][j] = n
}
}
result := find(nums,K)
fmt.Println(result)
}
func find(nums [][]int,target int) string {
rows,cols := len(nums), len(nums[0])
row, col := 0,cols-1
for row = 0 {
if nums[row][col] == target {
return "Yes"
} else if nums[row][col] > target {
col --
} else {
row++
}
}
return "No"
}