lc-go/solutions/0/q74/solution.go

24 lines
492 B
Go

// Package q74 implements a solution for https://leetcode.com/problems/search-a-2d-matrix/
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