summed pairs target match

Run Settings
LanguageGo
Language Version
Run Command
package main import ( "fmt" ) func Find(set []int, target int) bool { ln := len(set) if ln == 1 { return false } for i := 0; i < ln; i++ { fe := set[0] // first element ce := set[i] // current element le := set[ln-1] // last element cle := set[ln-(i+1)] // current last element // first + current only if i != 0 if fe+ce == target && i != 0 { fmt.Printf("ITERATION: %d\t%d+%d=%d\t", i, fe, ce, target) return true } else if fe+le == target { // fe != le if array size > 1 fmt.Printf("ITERATION: %d\t%d+%d=%d\t", i, fe, le, target) return true } else if ce+le == target && i != ln-1 { fmt.Printf("ITERATION: %d\t%d+%d=%d\t", i, ce, le, target) return true } else if ce+cle == target && i != ln-(i+1) { fmt.Printf("ITERATION: %d\t%d+%d=%d\t", i, ce, cle, target) return true } } return false } func DoTest(set []int, target int, pairExists bool) { r := Find(set, target) if r == true { fmt.Println("PASS") } else { if pairExists { fmt.Printf("%v %d\tFAIL\n", set, target) } fmt.Printf("%v %d\tPASS - no match possible\n", set, target) } } func main() { DoTest([]int{2, 2, 4, 6}, 8, true) DoTest([]int{1, 2, 4, 4}, 8, true) DoTest([]int{1, 2, 4, 5}, 9, true) DoTest([]int{2, 2, 8, 5}, 10, true) DoTest([]int{-5, 2, 10, 11}, 5, true) DoTest([]int{-1, -2, 10, 11}, 8, true) DoTest([]int{-1, -1, 10, 11}, 8, false) DoTest([]int{-10, -7, -2, 3, 4, 11, 21, 22, 33, 42}, 40, true) }
Editor Settings
Theme
Key bindings
Full width
Lines