Skip to main content

两数之和

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。

你可以按任意顺序返回答案。

暴力法(熟悉go的循环

func twoSum(nums []int, target int) []int {
for index, value := range nums {
for tick := index + 1; tick < len(nums); tick++ {
if value+nums[tick] == target {
return []int{index, tick}
}
}
}
return nil
}

哈希表法(熟悉go的哈希

func twoSum(nums []int, target int) []int {
hashTable := map[int]int{}
for i, x := range nums {
if p, has_targer_minus_x := hashTable[target-x]; has_targer_minus_x {
return []int{i, p}
} else {
hashTable[x] = i
}
}
return nil
}