1.我的目的

记录此题的思路 ----- 灵活运用hashmap/dict提升效率

2.题目描述

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。
eg. nums = [2, 7, 11, 15], target = 9 返回 [0, 1]

3.解答

解法一:

def a(nums: List[int], target: int) -> List[int]:for indexi,i in enumerate(nums[:len(nums)-1]):for indexj,j in enumerate(nums[indexi+1:]):if i + j == target:return [indexi, indexi + indexj + 1]

两个for循环,显然时间复杂度是不过关的,在网上学习他人的解法
      解法二:

def a(nums, target):hashmap = {}for ind, num in enumerate(nums):hashmap[num] = indfor i, num in enumerate(nums):j = hashmap.get(target - num)if j is not None and i != j:return [i, j]

代码很容易看懂,为什么这样效率就能提升很多呢?
      我的理解是python 的 dict是使用哈希表实现的,哈希表在数据的存储和查询上几乎可以看做常数时间,就相当于在我们利用hashmap.get的时候不用考虑时间复杂度,这样上面的方法就相当于一个for循环解决了,效率就得到了极大的提升。
      (其实一开始我看到网上思路是利用hashmap,第一想法是将序列号放key , 值放value,那么这样就是先获取所有value,遍历找到合适的value,然后又去找value对应key值,其实还是for + for;巧妙的将值作为key是关键的思想)

算法思想记录:给定一个整数数组 nums 和一个目标值 target相关推荐

  1. 698. 划分为k个相等的子集:给定一个整数数组 nums 和一个正整数 k,找出是否有可能把这个数组分成 k 个非空子集,其总和都相等。

    题目描述 给定一个整数数组 nums 和一个正整数 k,找出是否有可能把这个数组分成 k 个非空子集,其总和都相等. 示例 1: 输入: nums = [4, 3, 2, 3, 5, 2, 1], k ...

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

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

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

    题目要求: 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值 target 的那两个整数,并返回它们的数组下标. [注]从前往后进行匹配, 一旦匹配成功, 便结 ...

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

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

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

    题目链接:https://leetcode-cn.com/problems/two-sum/solution/liang-shu-zhi-he-by-leetcode-2/ 给定一个整数数组 nums ...

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

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

  7. 题目:给定一个整数数组 nums 和一个整数目标值 targ数,并返回它们的数组下标。

    题目:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标. 答案: public class JavaTest {pub ...

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

    题目:(JS实现) 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 四种方法如下: 方法一:暴力破解法,和值匹配 //暴力 ...

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

    标题:java,给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 一.示例 二.题解 方法一,暴力法:使用双重for循环,每 ...

最新文章

  1. plsql programming 10 日期和时间戳
  2. 科创板首发过会,格灵深瞳“三变”交出IPO答卷
  3. Centos6.9部署ORTS5.0.22
  4. 直通BAT必考题系列:JVM性能调优的6大步骤,及关键调优参数详解
  5. delphi测试服务器响应时间,负载测试中的页面响应时间 - Visual Studio (Windows) | Microsoft Docs...
  6. springboot 双缓存设计与使用
  7. Android开发笔记(六十九)JNI实战
  8. ubuntu18.04,Linux使用远程连接工具连接失败解决
  9. 大数据分析给企业带来哪些挑战
  10. xshell连接虚拟机(后续)
  11. selenium 实现循环点击_webdriver处理循环点击
  12. 小程序wxParse
  13. ios手机上java最好的编辑器_程序员编程利器:20款最好的免费的IDEs和编辑器
  14. Mac Chrome 安装插件(无VPN)
  15. 计算机基础知识——二进制
  16. android相对控件居中对齐,相对布局(RelativeLayout)常用属性
  17. android快速充电实现_手机充电ic介绍以及怎么用充电IC实现手机快速充电
  18. WaveDrom画时序波形
  19. 演讲达人成长记作者1月26日西单图书大厦现场讲座
  20. Python函数和装饰器

热门文章

  1. Linux/Ubuntu系统下的NVIDIA显卡如何超频?如何解锁功耗墙?一招搞定!
  2. 使用PYNQ-Z2开发板(1):准备工作
  3. 又一个北漂离开了,我还想坚持一下!
  4. quilt打patch
  5. 机器人ccid认证_机器人认证来了
  6. 转载:百度 新浪门户网站运维工程师
  7. js删除不符合条件的数据(对象数组)
  8. 腾讯技术开发软件下载中心
  9. mysql数据库双向实时同步
  10. SSD刮目相看 希捷750GB混合硬盘评测