編寫一個 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.
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
php