leetcode.1.两数之和
Posted hdrawery
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode.1.两数之和相关的知识,希望对你有一定的参考价值。
———————极其个人向的做题记录———————
哈希表的应用问题。
思路:①将数组nums[i]存入哈希表
②每次存入的时候查找(target-a[i])是否也在哈希表中且不为nums[i]本身
易错提醒:map.get(key)函数是需要key来查找value的,所以考虑到之后要通过(target-a[i])来查找数组对应的索引是否为i本身,在添加键值对的时候,
格式应为 "map.put(nums[i],i)”
代码:
public int[] twoSum(int[] nums, int target) { HashMap<Integer, Integer> map=new HashMap<>(); int a[]= {0,0}; for(int i=0;i<nums.length;i++) { int x=target-nums[i]; if(map.containsKey(x)&&i!=map.get(x)) {//如果存在减数且不为被减数本身 a[0]=i; a[1]=map.get(x); break; }else { map.put(nums[i],i); } } return a; }
结论:遇到本质是快速查找或者查重的问题,可以考虑采用哈希表。
以上是关于leetcode.1.两数之和的主要内容,如果未能解决你的问题,请参考以下文章