例子
输入数组 = [1, 3, 5, 7, 8, 9], sum = 11 => (3, 8)
解决这个问题的方法
第1步: 定义一个接受数组和 sum 的方法 。
第2步: 定义一个映射变量, 类型为map[int]int。
第3步: 将给定的数组迭代为 i .
第4步: 如果 映射 sum-arr[i] 中的键不存在,那么 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.