1.两数之和
https://leetcode-cn.com/problems/two-sum/
知识点
1.数组
[3]int
2.切片
[]int
3.集合map
panic: assignment to entry in nil map -> map没初始化,为nil,不能插入键值对
func twoSum(nums []int, target int) []int {
var record map[int]int
for k, v := range nums {
i, ok := record[target-v]
if (ok) {
return []int{k,i}
}
record[v] = k //panic: assignment to entry in nil map -> record没有初始化
}
return []int{}
}
- range语法
- nil类型
- 数组与切片的区别
- 值传递与引用传递
- map简洁的语法
判断key是否在map中
if _, ok := map[key]; ok {
}
最后代码
func twoSum(nums []int, target int) []int {
record := map[int]int{}
for k, v := range nums {
if i, ok := record[target-v]; ok{
return []int{k,i}
}
record[v] = k
}
return nil
}