package BinarySearch
func searchMatrix(matrix [][]int, target int) bool {
n, m := len(matrix), len(matrix[0])
f := func(index int) int {
return matrix[index/m][index%m]
}
for l, r := 0, n*m-1; l <= r; {
mid := (l + r) / 2
if f(mid) == target {
return true
} else if f(mid) > target {
r = mid - 1
} else {
l = mid + 1
}
}
return false
}