标签:mda col 格式 return pre 键值对 提醒 get 题记
———————极其个人向的做题记录———————
哈希表的应用问题。
思路:①将数组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; }
结论:遇到本质是快速查找或者查重的问题,可以考虑采用哈希表。
标签:mda col 格式 return pre 键值对 提醒 get 题记
原文地址:https://www.cnblogs.com/hdrawery/p/11980455.html