内容简介:妙解法:首先遍历一次整数数组,将数组下标和值建立哈希表,再从头遍历一次哈希表,先得出当前读取的位置
问题:
给定一个整数数组 nums
和一个目标值 target
,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
妙解法:
public int[] twoSum(int[] nums, int target) { Map<Integer, Integer> map = new HashMap<>(); //建立hashmap for (int i = 0; i < nums.length; i++) { map.put(nums[i], i); } //在哈希表中遍历每个元素,找到可能与之匹配成target的下标 for (int i = 0; i < nums.length; i++) { int complement = target - nums[i]; if (map.containsValues(complement) && map.get(complement) != i) { return new int[] { i, map.get(complement) }; } } throw new IllegalArgumentException("No two sum solution"); }
解释
首先遍历一次整数数组,将数组下标和值建立哈希表,再从头遍历一次哈希表,先得出当前读取的位置 i 上对于 target 的差 complement ,得到后通过查看该值是否保存在哈希表的value中,若存在,返回该值的 key ,否则读取下一元素。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 【每日笔记】【Go学习笔记】2019-01-04 Codis笔记
- 【每日笔记】【Go学习笔记】2019-01-02 Codis笔记
- 【每日笔记】【Go学习笔记】2019-01-07 Codis笔记
- vue笔记3,计算笔记
- Mysql Java 驱动代码阅读笔记及 JDBC 规范笔记
- 【每日笔记】【Go学习笔记】2019-01-16 go网络编程
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Ruby元编程(第2版)
[意] Paolo Perrotta / 廖志刚 / 华中科技大学出版社 / 2015-8-1 / 68.80
《Ruby元编程(第2版)》在大量剖析实例代码的基础上循序渐进地介绍Ruby特有的实用编程技巧。通过分析案例、讲解例题、回顾Ruby类库的实现细节,作者不仅向读者展示了元编程的优势及其解决问题的方式,更详细列出33种发挥其优势的编程技巧。本书堪称动态语言设计模式。Ruby之父松本行弘作序推荐。一起来看看 《Ruby元编程(第2版)》 这本书的介绍吧!