方法1 遍历:
func searchMatrix(matrix [][]int, target int) bool {
for _,v1 := range matrix {
for _,v2 := range v1 {
if v2 == target {
return true
}
}
}
return false
}
方法2 二分查找:
func searchMatrix(matrix [][]int, target int) bool {
for _, row := range matrix {
i := sort.SearchInts(row, target)
if i < len(row) && row[i] == target {
return true
}
}
return false
}
方法3 Z字形搜索:
选中右上角的数,如果这个数小了就往下移一格,如果大了就往左移一格 图解:
func searchMatrix(matrix [][]int, target int) bool {
x1,y1 := len(matrix[0]),len(matrix)
x,y := x1-1,0
for x >-1 && y < y1{
if matrix[y][x] == target {
return true
}
if matrix[y][x] > target {
x--
}else {
y++
}
}
return false
}