23 lines
401 B
Go
23 lines
401 B
Go
package q74
|
|
|
|
func searchMatrix(matrix [][]int, target int) bool {
|
|
w, h := len(matrix[0]), len(matrix)
|
|
idx := func(i int) (int, int) { return i / w, i % w }
|
|
|
|
l, r := 0, w*h
|
|
for l < r {
|
|
m := (l + r) / 2
|
|
row, col := idx(m)
|
|
switch {
|
|
case matrix[row][col] == target:
|
|
return true
|
|
case matrix[row][col] < target:
|
|
l = m + 1
|
|
default:
|
|
r = m
|
|
}
|
|
}
|
|
return false
|
|
}
|
|
|
|
var _ = searchMatrix
|