编写一个 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 次观看

开启你的职业

完成该课程获得认证

立即开始
广告