package main import ( "fmt" ) func twoSumOld(numbers []int, target int) []int { for i := 0; i < len(numbers)-1; i++ { for j := i + 1; j < len(numbers); j++ { if numbers[i]+numbers[j] == target { return []int{i + 1, j + 1} } } } return nil } func twoSum(numbers []int, target int) []int { left, right := 0, len(numbers)-1 for left != right { sum := numbers[left] + numbers[right] if sum < target { left++ } else if sum > target { right-- } else { return []int{left + 1, right + 1} } } return nil } func main() { arr := []int{-1, 0} fmt.Println(twoSum(arr, -1)) }