美文网首页Go算法
(12)Go查找表求两数之和

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

作者: 哥斯拉啊啊啊哦 | 来源:发表于2019-05-14 12:33 被阅读0次

方法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,通过

相关文章

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

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

  • leetcode top100

    1.求两数之和(数组无序) 2.求电话号码的字母组合 3.三数之和 4.两数之和(链表)

  • (13)Go查找表求四数相加

    提交leetcode,通过

  • LeetCode 第18题:四数之和

    1、前言 2、思路 采用三数之和的思路,原本三数之和可以分解为:数组中的一个数 + 此数右边的数求两数之和,那么四...

  • 解决两数之和 (Javascript, Java, C#, Sw

    解决两数之和(Javascript, Java, C#, Swift, Kotlin, Python,C++,Go...

  • LeetCode之求两数之和

    记录学习数据结构过程中练习的算法题 本题是关于数组的练习,题干清晰,难度简单,没有太多需要说明的地方 1.暴力求解...

  • 双指针总结

    左右指针 主要解决数组中的问题:如二分查找 盛最多水的容器 三数之和 四数之和 最接近三数之和 快慢指针 主要解决...

  • C语言第六次作业:动态申请内存

    动态申请内存 1. 两数之和 数组二重循环\哈希表 167. 两数之和 II - 输入有序数组数组二重循环\首尾指...

  • 哈希表1 两数之和

    给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下...

  • 算法题分类规划

    哈希表 or 切片操作 or stack 1. 两数之和 (attention break) https://le...

网友评论

    本文标题:(12)Go查找表求两数之和

    本文链接:https://www.haomeiwen.com/subject/rocsaqtx.html