123456789101112131415161718192021222324252627282930313233343536 |
- 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))
- }
|