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
}
本文介绍了如何使用Go语言解决LeetCode上的经典问题——两数之和。通过创建一个哈希映射记录数组元素,避免了二次遍历,提高了效率。在代码实现过程中,特别注意了初始化map的重要性,避免了`panic: assignment to entry in nil map`的错误。
629

被折叠的 条评论
为什么被折叠?



