• 题目:

两数之和

  • 难度:

简单

  • 描述:

给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。

你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。

  • 解法:
class Solution {
public int[] twoSum(int[] nums, int target) {
//key:数组元素数值 value:数组元素位置
Map<Integer, Integer> addElementFirst = new HashMap<Integer, Integer>(); for (int i = 0; i < nums.length ; i++) {
//新的元素数值,Map中不包含则put
if (!addElementFirst.containsKey(nums[i])) {
addElementFirst.put(nums[i], i);
}
//当前元素数值对应求和的另一个加数
int eleSecond = target - nums[i];
//另一个加数是之前加入到Map中的情况
if (addElementFirst.containsKey(eleSecond) && addElementFirst.get(eleSecond) != i) {
return new int[]{addElementFirst.get(eleSecond), i};
}
}
return new int[]{-1, -1};
}
}
  • 总结:

求和问题可以换个思路考虑——做差,然后在Map中快速搜索找到正解。

最新文章

  1. 搭建Hadoop2.5.2+Eclipse开发调试环境
  2. MongoDB的学习和使用
  3. lua的栈
  4. MyEclipse------File类的各种方法
  5. cadence 16.6 Pspice 仿真步骤
  6. 对C#中的web访问mysql数据库的一些知识点进行了整理归纳总结
  7. lower_bound()函数
  8. oracle,如何查看视图结构,获得视图中的字段名称、字段类型、字段长度等。
  9. SQL SERVER运维日记--收缩数据库
  10. Java集合ArrayList源码解读
  11. 【Python】Non-ASCII character '\xe6' 错误解决方法
  12. (概念)多个CPU和多核CPU以及超线程(Hyper-Threading)
  13. tornado架构分析3 options.py中基础类_Option
  14. 伪Ap接入点
  15. 《Java程序设计》第一周学习记录(2)
  16. 关于ArrayAdapter的getCount()的方法会造成空指针异常的分析
  17. RAMPS1.4 3d打印控制板接线与测试3
  18. UVa 10970 Big Chocolate (想一下就AC了)
  19. windows系统下,安装多个版本的jdk,java -version
  20. MS SQLServer 批量附加数据库

热门文章

  1. css 禅意花园 笔记
  2. [Idea Fragments]2013.08.08
  3. ajax取消重复请求
  4. 常用cms
  5. JAVA8之lambda表达式详解,及stream中的lambda使用
  6. 重写(Override)
  7. 多媒体开发之rtsp 打包发流---rtsp发送
  8. java ssh介绍(1)
  9. iOS捕获异常,常用的异常处理方法
  10. Faster R-CNN利用新的网络结构来训练