Find a Pair With Given Sum
Unsorted Array
Input: arr[] = {2, 5, 13, 6, 9, 4}, sum=10 Output: Yes
Input: arr[] = {10, 5, 13, 6, 9, 4}, sum=5 Output: No
Implementation
package main
import (
"fmt"
"sort"
)
func main() {
arr := []int{2, 5, 13, 6, 9, 10}
k := 13
res := findPairWithGivenSum(arr, k)
fmt.Println(res)
}
func findPairWithGivenSum(arr []int, target int) bool {
m := make(map[int]bool)
for _, ele := range arr {
if _, ok := m[target-ele]; ok {
return true
}
m[ele] = true
}
return false
}
Sorted Array
Input: arr[] = {2, 4, 6, 9, 12, 13}, sum=10 Output: Yes
Input: arr[] = {3, 4, 6, 9, 10, 13}, sum=8 Output: No
Implementation
package main
import (
"fmt"
"sort"
)
func main() {
arr := []int{2, 5, 13, 6, 9, 10}
k := 13
res := findPairWithGivenSum(arr, k)
fmt.Println(res)
}
func findPairWithGivenSum(arr []int, target int) bool {
i := 0
j := len(arr) - 1
for i < j {
sum := arr[i] + arr[j]
if sum == target {
return true
} else if sum > target {
j--
} else {
i++
}
}
return false
}