package main
import (
"fmt"
"sort"
)
func twoSum(nums []int, target int) []int {
var locs []int
var start = 0
var end = len(nums)
var sum = 0
// 排序
oldNums := make([]int, end)
copy(oldNums, nums)
sort.Ints(nums)
// fmt.Println(nums)
for {
if start >= end-1 {
break
}
sum = nums[start] + nums[end-1]
if sum == target {
// locs = append(locs, start)
// locs = append(locs, end-1)
break
} else if sum > target {
end -= 1
continue
} else if sum < target {
start += 1
continue
}
}
// 找出排序后两个元素对应原来数组的位置
for idx, num := range oldNums {
if num == nums[start] {
start = idx
locs = append(locs, idx)
break
}
}
for idx, num := range oldNums {
if num == nums[end-1] && idx != start {
locs = append(locs, idx)
break
}
}
return locs
}
func main() {
//nums := []int{3, 2, 4}
//target := 6
//nums := []int{2, 7, 11, 15}
//target := 9
nums := []int{3, 2, 3}
target := 6
fmt.Println(twoSum(nums, target))
}