输入:nums = [2,7,11,15], target = 9
输出:[0,1]
解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
为了节约时间,可以将哈希表中的键设为数组的值,哈希表中的值设为输出目标(也就是返回的数的下标)。
Map<Integer, Integer> hashtable = new HashMap<Integer, Integer>();
for (int i = 0; i < nums.length; ++i) {
if (hashtable.containsKey(target - nums[i]))//这样就能直接寻找目标元素,而不需要遍历,大大减少了时间 {
return new int[]{hashtable.get(target - nums[i]), i};
}
hashtable.put(nums[i], i);
}
return new int[0];
}