package main import "fmt" func main() { fmt.Println(twoSum([]int{3, 3}, 6)) } func twoSum(nums []int, target int) []int { hash := make(map[int][]int) for i := 0; i < len(nums); i++ { hash[nums[i]] = append(hash[nums[i]], i) } fmt.Println(hash) var result []int for k, v := range hash { if k == target/2 && len(v) > 1 { result = append(result, v...) return result } else if k == target/2 && len(v) == 1 { continue } if val, ok := hash[target-k]; ok { result = append(result, v[0]) result = append(result, val[0]) return result } } return result }