package leetcode.editor.cn;//给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
//
// 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。
//
//
//
// 示例:
//
// 给定 nums = [2, 7, 11, 15], target = 9
//
//因为 nums[0] + nums[1] = 2 + 7 = 9
//所以返回 [0, 1]
//
// Related Topics 数组 哈希表import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;public class 两数之和{public static void main(String[] args) {Solution solution = new 两数之和().new Solution();int[] arr = {2,7,11,15};int target = 9;System.out.println(Arrays.toString(solution.twoSum(arr,target)));System.out.println(Arrays.toString(solution.twoSum2(arr,target)));System.out.println(Arrays.toString(solution.twoSum3(arr,target)));}
//leetcode submit region begin(Prohibit modification and deletion)
class Solution {/*** 方法一:一遍哈希表* 在进行迭代并将元素插入到表中的同时,我们还会回过头来检查表中是否已经存在当前元素所对应的目标元素。如果它存在,那我们已经找到了对应解,并立即将其返回。* 简单点说:和减去当前遍历元素得到另一元素,判断另一元素是否在哈希表中,存在即返回;不存放将当前遍历元素,存放哈希表中。* @param nums* @param target* @return*/public int[] twoSum(int[] nums, int target) {Map<Integer,Integer> map = new HashMap<Integer, Integer>();for (int i = 0; i < nums.length; i++) {int temp = target - nums[i];if(map.containsKey(temp)){return new int[]{map.get(temp),i};}map.put(nums[i],i);}return null;}/*** 方法二:两遍哈希表* 将数组元素存放在哈希表中,再循环辨析数组,判断哈希表中是否存在元素相加等于和。* @param nums* @param target* @return*/public int[] twoSum2(int[] nums, int target) {Map<Integer,Integer> map = new HashMap<Integer, Integer>();for (int i = 0; i < nums.length; i++) {map.put(nums[i],i);}for (int i = 0; i < nums.length; i++) {int temp = target - nums[i];if(map.containsKey(temp) && map.containsKey(nums[i])){return new int[]{map.get(nums[i]),map.get(temp)};}}return nums;}/*** 方法三:暴力解题法* 遍历两次数组* @param nums* @param target* @return*/public int[] twoSum3(int[] nums, int target) {for (int i = 0; i < nums.length-1; i++) {for (int j = i+1; j < nums.length; j++) {if (target == (nums[i]+nums[j])){return new int[]{i,j};}}}return nums;}}
//leetcode submit region end(Prohibit modification and deletion)}

【LeetCode】两数之和相关推荐

  1. leetcode 两数之和 整数反转 回文数 罗马数字转整数

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

  2. leetcode两数之和

    #####两数之和 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数. 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用. 示例: 给定 nums = [2, 7, 11, 15 ...

  3. leetcode两数之和,三数之和,四数之和问题

    1. 两数之和 遍历数组的同时,使用字典(哈希表)记录数对应的索引,对于每一个数nums[i],判断 target-nums[i]是否在字典中,找到一个即返回.若列表中的与元素有重复也可这样处理,因为 ...

  4. LeetCode两数之和 56 python

    描述 中文 English 给一个整数数组,找到两个数使得他们的和等于一个给定的数 target. 你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标.注意这里下标的范 ...

  5. Leetcode——两数之和

    这题有一个很简单的解决办法,就是暴力求解法,跟其他语言是一样的,但是就只是语言的书写形式上不一样. 思路:两层循环遍历,一个值一个值的试,最后找出最终的结果 class Solution(object ...

  6. LeetCode 两数之和

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

  7. [LeetCode] 两数之和

    英文描述 Given an array of integers, return indices of the two numbers such that they add up to a specif ...

  8. LeetCode 两数之和(Two Sum)

    题目 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数. 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用. 示例 给定 nums = [2, 7, 11, 15], targe ...

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

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

  10. 【LeetCode】两数之和、三数之和、四数之和系列

    文章目录 两数之和★ 三数之和★★ 四数之和★★ 四数相加Ⅱ★★ 最接近的三数之和★★ 此篇文章总结下力扣中的两数之和.三数之和.四数之和及一系列求数组中满足达到目标值的元组个数的问题,仔细阅读下面的 ...

最新文章

  1. 必须要懂得的密码技术
  2. hadoop的HDFS-----防火墙导致9870端口无法访问
  3. 【问链-Eos公开课】第二课 EOS环境搭建(Ubuntu系统下)
  4. php记录已经点击过,最近一次的PHP面试题记录,office已到手!
  5. Swift数据类型简介(二)
  6. 遍历可执行文件所在目录下的指定类型的文件
  7. python.123登录_python用户登录3次
  8. bzoj 2115: [Wc2011] Xor(DFS+线性基)
  9. 40家重污染行业上市公司进“黑名单”
  10. Mysql - 聚簇索引和辅助索引
  11. Head First 设计模式笔记 4.工厂模式
  12. ICP许可证有多重要
  13. 北京生鲜小程序开发之万象优鲜生鲜配送系统源码
  14. Unity中TextMeshPro显示中文
  15. 关于Synaptics.exe感染型病毒
  16. HBCPC2017 C++ 训练题 春游 超级密码
  17. 【随手记】fatal: cannot do a partial commit during a merge. 解决
  18. 【面试】蜻蜓FM2020秋季校园招聘
  19. 图书推荐系统(附源码链接)
  20. CLIP: Learning Transferable Visual Models From Natural Language Supervision

热门文章

  1. android studio 手动安装gradle,Android Studio 如何安装Gradle?
  2. oracle 9.2.0.2,在RedHat enterprise server 3 安装oracle9i 2.0.0.1 并升级到9.2.0.6
  3. 自学python从零开始学_新手学习python-从零开始学习
  4. serialversionuid的作用_为什么阿里Java规约要求谨慎修改serialVersionUID字段
  5. 为什么torch.nn.Linear的表达形式为y=xA^T+b而不是常见的y=Ax+b?
  6. access考试素材_NCRE考试当天常见问题处理办法及各科目注意事项大汇总
  7. 第1章 Python 数字图像处理(DIP) --绪论
  8. ng build --prod --aot打包Angluar4项目报javaScript heap out of memory,内存溢出
  9. ActionScript 3.0 Step By Step系列(四):来自面向对象开发之前的呐喊:“学会写可重用的代码”...
  10. VS2005 Web Application Project启用WSE(Ver 3.0)的方法