给定一个整数数组 nums 和一个整数目标值 target,在该数组中找出和为目标值 target 的那两个整数,并返回它们的数组下标。
可假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
可以按任意顺序返回答案。

示例 1:

输入:nums = [2,7,11,15], target = 9
输出:[0,1]
解释: nums[0] + nums[1] ==9 ,返回 [0, 1] 。

示例 2:

输入:nums = [3,2,4], target = 6
输出:[1,2]

示例 3:

输入:nums = [3,3],
target = 6 输出:[0,1]

Python:
思路一:暴力求解:两层for循环遍历列表

def sums(nums,target):for i in range(len(nums)):num = nums[i]for j in range(i+1,len(nums)):if nums[j] == target - num:return i,j

思路二:采用枚举对象,enumerate() 函数将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,用字典存储整数及其下标

def enum(nums, target):dic = {}for index,el in enumerate(nums):if target - el not in dic:   # in操作符用于判断键是否存在于字典中dic[el] = index  # 存储数值和下标else:return [dic[target - el], index]if __name__ == '__main__':nums = [2, 7, 11, 15]target = 9print(enum(nums,target))enumerate(nums)返回值:
0 2
1 7
2 11
3 15
输出:[0, 1]

Java:使用HashMap实现键值对的映射

import java.util.HashMap;
import java.util.Map;// 两数之和
public class TwoSum {public static void main(String[] arg){int[] arr = {2,7,11,15};int target = 9;for(int i : twosum(arr, target)){System.out.println(i);}}public static int[] twosum(int[] nums,int target) {int[] arr = new int[2];Map<Integer, Integer> map = new HashMap<>();for(int i = 0;i < nums.length;i++){int num = target - nums[i];if(map.containsKey(num)){  //检查 hashMap 中是否存在指定的 key 对应的映射关系arr[0] = map.get(num);  //获取指定 key 对应对 valuearr[1] = i;}map.put(nums[i], i);}return arr;}
}

两数之和(Python + Java)相关推荐

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

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

  2. leetCode:twoSum 两数之和 【JAVA实现】

    LeetCode 两数之和 给定一个整数数组,返回两个数字的索引,使它们相加到特定目标. 您可以假设每个输入只有一个解决方案,并且您可能不会两次使用相同的元素. 更多文章查看个人博客 个人博客地址:t ...

  3. LeetCode第一题:两数之和(Java)

    文章目录 前言 一.题目内容 二.解题过程 1. 解题思路 2. 解题代码 三.提交结果 总结 前言 坚持下去便可胜利.只要心还在,梦想还在,我们还可以坚持直至胜利.没有过不去的坎,只有害怕的心.莫害 ...

  4. 【LeetCode笔记】1. 两数之和(JAVA、哈希表)

    文章目录 一. 题目描述 二. 解法 ① 暴力破解 ② 静态哈希表 1. 为什么用哈希表来做 2. 特殊情况:两数相同,map映射覆盖 ③ 动态哈希表 ④ 未解之谜 诶嘿,经典开头题目 一. 题目描述 ...

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

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

  6. Leetcode有java版么_leetcode 1. 两数之和(Java版)

    题目描述:(题目难度,简单) 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你 ...

  7. 两数之和Python解法

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

  8. 1. 两数之和(Java)

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

  9. 《漫画算法2》源码整理-6 两数之和 三数之和

    两数之和 import java.util.*;public class TwoSum {public static List<List<Integer>> twoSum(in ...

  10. java三位整数倒序相加_用单向链表实现两数倒序相加(java实现)

    很久没做算法题了,准备重操旧业,于是刷了一波LeetCode,看到一个比较经典的链表算法题,分享出来. 题目 给定两个非空链表来表示两个非负整数.位数按照逆序方式存储,它们的每个节点只存储单个数字.将 ...

最新文章

  1. 串口下载器rts线不接可以吗_【单片机自学】1.单片机的开发环境及下载过程教程...
  2. element-- 修改MessageBox 弹框 中确定和取消按钮顺序
  3. 从内存中加载并启动一个exe
  4. linux 进程死循环,Linux下如何处理一次用户态进程死循环问题
  5. linux查看运行钟的tomcat,linux查看tomcat启动运行日志
  6. 前端学习(972):swiper插件使用 参数更改
  7. python实战学习之matplotlib绘图续
  8. python判断_python的判断
  9. 关于unity2019.3.11.f在烘焙光照贴图时闪退的问题
  10. 2018-2019-2 网络对抗技术 20165322 Exp9 Web安全基础
  11. IO-01. 表格输出(5)
  12. Sum nyoj215
  13. spring 事务源码(三)如何保证被@Transactional标记方法中的所有sql都在一个事务内
  14. 怎样使用U盘启动盘安装乌班图系统
  15. Web前端开发师必备的8个工具
  16. Http请求格式和响应格式
  17. sql中on和where的区别在哪
  18. Windows取证——CHNTPW工具使用(可更改 Windows 密码)
  19. JS - 解决鼠标单击、双击事件冲突问题(原生js实现)
  20. 场景编程集锦 - 吉米的总统梦想

热门文章

  1. java数据透视表_java poi生成数据透视表
  2. leetcode 刷题指南 刷题顺序
  3. 【动态规划】 最简入门教程
  4. 【读书笔记】 UML那些事儿
  5. Midjourney科普介绍
  6. 给自己的人生做了个长远规划
  7. 下载指定版本的Logstash
  8. 李嘉诚申报减持2221.6万股南航套现2.9亿
  9. 一键压缩word文档的办法,太简单了
  10. UC开放平台要让信息流无处不在,与百度思路有何不同?