編寫一個 Go 語言程式,以在陣列中查詢具有給定和的成對數(O(nlogn))
示例
輸入陣列 = [1, 3, 5, 7, 8, 9],總和 = 11 => (3, 8)
解決此問題的思路
步驟 1: 定義接受陣列和總和的方法。
步驟 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--。
步驟 5: 最後,列印“未找到成對數”。
程式
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.
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式語言
C++
C#
MongoDB
MySQL
Javascript
PHP