美文网首页技术干粮
[算法基础题]求两数之和

[算法基础题]求两数之和

作者: 壳叔 | 来源:发表于2019-12-08 14:19 被阅读0次

今日总结

浪费生命的三座大山,迟到,防火墙,机械硬盘。

正文

算法大佬就别看来看笑话了,回吧

场景问题

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

你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

示例:

给定 nums= [5, 7, 8, 10], target= 12

因为 nums[0] + nums[1] = 5 + 7 = 12
所以返回 [0, 1]

首先这道题属于算法中的基础,难度也简单,是一道经典题目,我也没想考大家。

但是大部分人都是采用双重for来暴力解决问题,也是十分简单 但是相对于数据量大的情况下时间复杂度并非最佳。

本篇介绍的是用一遍for循环搞定, 使用 哈希表

代码实例

经过代码的实践,确保代码无误的情况下,一次搞定。

思路

在进行迭代并将元素插入到表中的同时,我们还会回过头来检查表中是否已经存在当前元素所对应的目标元素。如果它存在,那我们已经找到了对应解,并立即将其返回。

须知

需要注意的是这种实现是基于语言特性原生支持HashMap
并且所需的额外空间取决于哈希表中存储的元素数量,该表最多需要存储 n 个元素。

解惑

还有许多人说 containsKey内部还是循环, 解释下错误原因,可以去看containsKey、hashMap源码,注意散列存储结构,查找是根据hashcode快速定位,通过hashcode值去快速定位。key为基本类型或String类型,都已经重写hashCode方法。所以定位很快,循环只是解决了hash冲突问题查找方案。

相关文章

  • [算法基础题]求两数之和

    本文由黑壳博客原创 本文来源[算法基础题]求两数之和 今日总结 浪费生命的三座大山,迟到,防火墙,机械硬盘。 正文...

  • 最简单的算法题,你会吗?

    leetcode上算法第一题,求两数之和,是最简单的算法题。 给定一个整数数组 nums 和一个目标值 targe...

  • ATRS第1周

    ATRS Algorithm算法题: 两数之和 - 力扣 (LeetCode) ``` function twoS...

  • 算法题-两数之和

    题目描述: 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们...

  • LeetCode算法题,两数之和

    题目出处:https://leetcode-cn.com/problems/two-sum/ 题目描述:给定一个整...

  • 算法题之---《两数之和》

    题目: 给定一个数组和一个目标值target,不考虑重复使用元素,找出数组中和=target的两个元素。 首先,最...

  • 算法刷题-两数之和

    八个Docker的真实应用场景 【编者的话】Flux 7介绍了常用的8个Docker的真实使用场景,分别是简化配置...

  • leetcode top100

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

  • 两数之和(golang)

    原题:两数之和 关联:两数之和 II - 输入有序数组(golang)两数之和 IV - 输入 BST(golang)

  • 两数之和 II - 输入有序数组(golang)

    原题:两数之和 II - 输入有序数组 关联:两数之和(golang)两数之和 IV - 输入 BST(golan...

网友评论

    本文标题:[算法基础题]求两数之和

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