Go语言之LeetCode 1.两数之和

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{}
}
  1. range语法
  2. nil类型
  3. 数组与切片的区别
  4. 值传递与引用传递
  5. 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
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值