Advertisement
alisadafi

Matrix-Search-Efficient

Nov 9th, 2023
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 0.63 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4.     "fmt"
  5. )
  6.  
  7. func main() {
  8. // Example usage
  9.     X := [][]int{
  10.         {1, 2, 3},
  11.         {4, 5, 6},
  12.         {7, 8, 9},
  13.     }
  14.     k := 5
  15.     result := find(X, k)
  16.     if result[0] == -1 && result[1] == -1 {
  17.         fmt.Println("Element not found.")
  18.     } else {
  19.         fmt.Printf("Element found at position (%d, %d).\n", result[0], result[1])
  20.     }
  21. }
  22.  
  23. func find(X [][]int, k int) [2]int {
  24.     n := len(X)
  25.     m := len(X[0])
  26.     a := 0
  27.     b := m - 1
  28.     for a < n && b >= 0 {
  29.         if X[a][b] == k {
  30.             break
  31.         } else if X[a][b] < k {
  32.             a += 1
  33.         } else {
  34.             b -= 1
  35.         }
  36.     }
  37.     if a >= n || b < 0 {
  38.         return [2]int{-1, -1} // not found
  39.     }
  40.     return [2]int{a, b}
  41. }
  42.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement