题目描述

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

注意
输入的数组中只有唯一的一组值符合要求
不能利用数组中相同的元素

示例

给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]

题目分析

  • 我们首先可以想到的是,采用双重循环,来遍历数组,找到这个的两个数,并返回他们的下标,但是这些的时间复杂度为O(N^2)
  • 为了找到更好的办法,我们可以采用哈希表(字典),在最短的时间就可以访问数组中的内容
  • 这时,时间复杂度为O(N),空间复杂度为O(N),时间缩短

详细代码

class Solution:def twoSum(self, nums: List[int], target: int) -> List[int]:d = {}                # 定义字典d,字典d的key是数组中的元素,value是数组中元素的indexfor index, val in enumerate(nums):      # 用enumerate函数快速返回index和valuetmp = target - val                               # 要找的数字tmpif tmp in d:                                            # 遍历字典d,看是否右tmpreturn ([d[tmp],index])               # 若在tmp在字典中,则返回对应的indexelse:d[val] = index                                  # 否则添加到字典中

1、两数之和(python)相关推荐

  1. 两数之和python哈希_LeetCode-python 1.两数之和

    类型:哈希表.数组.双指针 题目:给定一个整数数组 nums 和一个目标值 target,请你在 该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标.可以假设每种输入只会对应一个答案.但是, ...

  2. 两数之和Python解法

    给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target  的那 两个 整数,并返回它们的数组下标. 你可以假设每种输入只会对应一个答案.但是,数组中同 ...

  3. Leetcode python《热题 HOT 100》1. 两数之和

    Leetcode python 之 <热题 HOT 100>:https://leetcode-cn.com/problemset/hot-100/ 1. 两数之和 给定一个整数数组 nu ...

  4. swift golang java,解决两数之和 (Javascript, Java, C#, Swift, Kotlin, Python,C++, Golang)

    解决两数之和(Javascript, Java, C#, Swift, Kotlin, Python,C++, Golang) 给定一个整数数组,返回两个数字的索引,以便它们加起来成为一个特定的目标. ...

  5. python的return语句求两数之和_程序题(python解)

    PyCharm整理代码:Ctrl+Alt+l list行数:len(list) list列数:len(list[1]) 笔试常使用到的功能: 1.单独取出一长串字符中每个单独的字符: 输入'abcd' ...

  6. 两数之和(Python + Java)

    给定一个整数数组 nums 和一个整数目标值 target,在该数组中找出和为目标值 target 的那两个整数,并返回它们的数组下标. 可假设每种输入只会对应一个答案.但是,数组中同一个元素在答案里 ...

  7. python链表实现多项式_Python链表之两数之和

    两数之和 [今日知图] 标记 某一块代码可能需要稍后处理 使用m增加一个标记,标记名称可以是a~z和A~Z之间的任意一个字母; 添加标记了的行如果被删除,标记同时被删除; 后面的标记名与前面一致会覆盖 ...

  8. Python方法解决两数之和(适合初学者)

    Python方法两数之和–两种方案 今天在写这个算法的时候,遇到了在pycham上面可以进行运行,但是在力扣上不能运行,搞了好久,不去想了,我所写的算法分析,非常适合刚刚入门的学习算法的同学,下面是两 ...

  9. 用Python实现两数之和(python)

    用Python实现两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不 ...

  10. python两数之和(hash 表)

    两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标.你可以假设每种输入只会对应一个答案.但是,数 ...

最新文章

  1. C#枚举系统安装的所有打印机
  2. 如何理解c和c ++的复杂类型声明 (转)
  3. Leetcode295 数据流中的中位数-最小堆和最大堆
  4. APP元素定位操作API
  5. boost::function模块右值的测试程序
  6. jsp2自定义标签开篇
  7. jtextpane设置不能选中_在Bridge cc中不能使用camera raw 的编辑功能,解决方法
  8. centos安装Python2.7
  9. binlog数据库不写入binlog_MySQL数据库及InnoDB存储引擎的日志文件
  10. 并发库之CountDownLatch
  11. 每周一个设计模式之工厂方法与抽象工厂
  12. [ckeditor系列]CKeditor自定义上传图片功能
  13. 小米蓝牙左右互联_宅家侃数码,小巧灵动,小米户外蓝牙音箱mini伴你度过疫情期...
  14. FFA 2021 专场解读 - Flink 核心技术
  15. vm9.02的序列号
  16. STorM32三轴云台控制器PID参数调节(1)
  17. oracle查看登录失败次数,Oracle取消用户连续登录失败次数限制
  18. 朱朱的2020年(上)
  19. Chrome插件安装办法【手机端】
  20. iOS版本、iPhone版本、Xcode版本比对

热门文章

  1. Rust: codewars的DNA to RNA Conversion
  2. 阿里云祝顺民:云网络的十年“修路”历程
  3. 苹果开发者被盯上了!Xcode又双叒叕被攻击了
  4. 【高薪、俱进、携手】只要你敢来,海云就敢要!
  5. 【目标定位】基于matlab去偏卡尔曼滤波目标定位仿真【含Matlab源码 140期】
  6. 【路径规划】基于matlab蚁群优化遗传算法求解机器人栅格地图最短路径规划问题【含Matlab源码 1581期】
  7. 【语音合成】基于matlab语音信号变调【含Matlab源码 566期】
  8. 【数字信号】基于matlab GUI双音多频(DTMF)信号检测【含Matlab源码 512期】
  9. 【优化求解】基于matalb遗传算法求解岛屿物资补给优化问题【含Matlab源码 172期】
  10. java 多线程 保存txt_一个txt文件,里面存在几万条数据,现用多线程实现数据导入,提高效率,java代码如何实现...