编写Golang程序以在数组(O(n))中查找具有给定总和的对
例子
输入数组=[1、3、5、7、8、9],总和=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("在给定数组中找不到配对。")
}
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). 在给定数组中找不到配对。
热门推荐
10 新婚祝福语简短十六字
11 弟弟的祝福语简短霸气
12 送给员工美好祝福语简短
13 客户投标祝福语简短范文
14 新年祝福语大全简短老师
15 给新年祝福语简短独特
16 新婚红包祝福语简短男
17 简短正能量生日祝福语
18 家庭恩爱祝福语大全简短