(12)Go查找表求两数之和

方法1:数组排序后,用对撞指针法
《(9)Go对撞指针法求数组两数之和》
参考https://www.jianshu.com/p/610d0c362eb9

方法2:查找表,时间复杂度O(n),空间复杂度O(n)
// 每次只查找 i 前面的
// map里面存储的是target-nums[i]的差值,遍历下个元素时,先去map看能不能取到,能取到则有
func twoSum2(nums []int, target int) []int {
    // m: key为target-num[i]的差值,val为索引i
    m := make(map[int]int)
    for i, v := range nums {
        if j, ok := m[v]; ok {
            return []int{j, i}
        }
        m[target-v] = i
    }
    return nil
}

提交leetcode,通过

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.设计模式是什么? 你知道哪些设计模式,并简要叙述?设计模式是一种编码经验,就是用比较成熟的逻辑去处理某一种类型...
    龍飝阅读 2,293评论 0 12
  • 编写和优化Go代码 本文档概述了编写高性能Go代码的最佳实践。 虽然有些讨论会提高单个服务的速度(通过缓存等),但...
    freelang阅读 2,325评论 0 4
  • LeetCode 刷题随手记 - 第一部分 前 256 题(非会员),仅算法题,的吐槽 https://leetc...
    蕾娜漢默阅读 18,350评论 2 36
  • 数组 记录《剑指offer》中所有关于数组的题目,以及LeetCode中的相似题目 相关题目列表 说明 由于简书...
    wenmingxing阅读 1,583评论 1 12
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,574评论 1 32

友情链接更多精彩内容