74.go 631 B

123456789101112131415161718192021222324252627282930313233
  1. package main
  2. func searchMatrix(matrix [][]int, target int) bool {
  3. if len(matrix) == 0 || len(matrix[0]) == 0 {
  4. return false
  5. }
  6. m, n := len(matrix), len(matrix[0])
  7. beg, end := 0, m*n-1
  8. for beg <= end {
  9. mid := (beg + end) / 2
  10. midVal := matrix[mid/n][mid%n]
  11. if target > midVal {
  12. beg = mid + 1
  13. } else if target < midVal {
  14. end = mid - 1
  15. } else {
  16. return true
  17. }
  18. }
  19. return false
  20. }
  21. /* func main() {
  22. m1 := [][]int{
  23. {1, 3, 6, 8},
  24. {9, 13, 53, 76},
  25. {99, 123, 243, 453},
  26. {654, 765, 876, 987},
  27. }
  28. fmt.Println(searchMatrix(m1, 987))
  29. fmt.Println(searchMatrix(m1, 97))
  30. fmt.Println(searchMatrix(m1, 1))
  31. } */