解题:
func twoSum(nums []int, target int) []int {
resMap := make(map[int]int)
for i := 0; i<len(nums);i++{
if _,ok := resMap[target-nums[i]];ok {
return []int{resMap[target-nums[i]],i}
}
resMap[nums[i]] = i
}
return []int{0,0}
}
map 数据类型可以一下子找到对应的Key是否存在。本题通过将value存入key中,通过target - value 来获取另个value是否存在map当中。
易错点:
- 赋值需要放在判断的后面,可以有效的规避target是本身两倍的情况,当前i循环的过程当中是map中是不存在该key的,只有下一个循环才会出现。