给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。
你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。
示例:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
package main
import (
"fmt"
//"os"
)
func twoSum(nums []int, target int) []int {
vkMap := make( map[int]int)
ret := make([]int, 2)
for k,v := range nums {
addend := target - v
if _,ok := vkMap[addend]; ok {
ret[0] = vkMap[addend]
ret[1] = k
}
vkMap[v] = k
}
return ret
}
func main() {
m := []int{1,2,3,4}
twoSum(m,7)
}