diff --git a/Hash/liangshuzhihe/main.go b/Hash/liangshuzhihe/main.go new file mode 100644 index 0000000..86bfe45 --- /dev/null +++ b/Hash/liangshuzhihe/main.go @@ -0,0 +1,30 @@ +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 +}