两数之和
// 暴力解法
func TwoSum(nums []int, target int) []int {
for i, x := range nums {
for j := i + 1; j < len(nums); j++ {
if x+nums[j] == target {
return []int{i, j}
}
}
}
return nil
}
// 哈希解法
func TwoSumHash(nums []int, target int) []int {
hashTable := map[int]int{}
for i, x := range nums {
if p, ok := hashTable[target-x]; ok {
return []int{p, i}
}
hashTable[x] = i
}
return nil
}
func TestTwoSum(t *testing.T) {
//fmt.Println(TwoSum([]int{11,1,92,2,7,15},9))
fmt.Println(TwoSumHash([]int{11,1,92,2,7,15},9))
}最后更新于