編寫一個 Golang 程式在陣列中找到具有給定和的配對(O(n))


範例

輸入陣列 = [1, 3, 5, 7, 8, 9], 和 = 11 => (3, 8)

解決此問題的辦法

步驟 1:定義接受陣列和 **sum** 的方法。

步驟 2:定義對映變數,**type map[int]int**。

步驟 3:迭代給定的陣列作為 **i**。

步驟 4:如果 **sum-arr[i]** 在 **mapping** 中的鍵不存在,那麼 **mapping[arr[i]]=i**。

步驟 5:如果存在,那麼列印“配對已找到”。

步驟 6:最後,列印“未找到配對”。

程式

線上演示

package main
import "fmt"
func findSumPair(arr []int, sum int){
   mapping := make(map[int]int)
   for i:=0; i<len(arr); i++{
      if mapping[sum-arr[i]] == 0{
         mapping[arr[i]] = i
      } else {
         fmt.Printf("Pair for given sum is (%d, %d).\n", arr[mapping[sum-arr[i]]], arr[i])
         return
      }
   }
   fmt.Println("Pair not found in given array.")
}

func main(){
   findSumPair([]int{4, 3, 6, 7, 8, 1, 9}, 15)
   findSumPair([]int{4, 3, 6, 7, 8, 1, 9}, 100)
}

輸出

Pair for given sum is (7, 8).
Pair not found in given array.

更新於: 04-Feb-2021

547 次觀看

開啟你的職業

完成該課程獲得認證

立即開始
廣告
© . All rights reserved.