Golang程序 在一个数组中找到具有指定总和的配对(O(nlogn))

Golang程序 在一个数组中找到具有指定总和的配对(O(nlogn))

例子

输入数组 = [1, 3, 5, 7, 8, 9], sum = 11 => (3, 8)

解决这个问题的方法

第1步: 定义一个接受数组和 sum 的方法 。

第2步: 对给定的数组进行排序,声明low:=0和high:=size-1的变量。

第3步: 迭代一个 for 循环直到low <= high。

第4步: 如果arr[low]+arr[high]==sum,则打印这些元素。

第5步: 如果arr[low]+arr[high]< sum,那么low++。如果arr[low]+arr[high]>sum,那么high–。

第6步: 在最后,打印 “未找到配对”。

程序

package main
import (
   "fmt"
   "sort"
)

func findSumPair(arr []int, sum int){
   sort.Ints(arr)
   low := 0
   high := len(arr) - 1
   for low <= high{
       if arr[low] + arr[high] == sum{
          fmt.Printf("Pair for given sum is (%d, %d).\n", arr[low], arr[high])
         return
      } else if arr[low] + arr[high] < sum {
         low++
      } else {
         high--
      }
    }
   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 (6, 9).
Pair not found in given array.

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程