package main
import "fmt"
/*
给出一个整数数组,请在数组中找出两个加起来等于目标值的数,
你给出的函数twoSum 需要返回这两个数字的下标(index1,index2),需要满足 index1 小于index2.。注意:下标是从1开始的
假设给出的数组中只存在唯一解
例如:
给出的数组为 {20, 70, 110, 150},目标值为90
输出 index1=1, index2=2
输入
[3,2,4],6
输出
[2,3]
*/
func twoSum(nums []int, target int) []int{
tmpMap := make(map[int]int, len(nums))
for index1 := range nums{
want := target - nums[index1]
if index2, ok := tmpMap[want]; ok{
return []int{index2 + 1, index1 +1}
}
if _, ok := tmpMap[nums[index1]]; ok{
continue
}
tmpMap[nums[index1]] = index1
}
return nil
}
func main(){
nums := []int{3, 3, 4, 5}
res := twoSum(nums, 7)
fmt.Println(res)
}