【code基础】HashMap在查找和降低时间复杂度方面的应用
HashMap 由于使用key:value形式,可以实现快速查找。通常能将时间复杂度降维
//2.进阶:你可以想出一个时间复杂度小于 O(n2) 的算法吗?使用哈希表
public int[] twoSum2(int[] nums, int target) {
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];
}