【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];
        }
posted @ 2022-09-26 11:37  xiaoyu_jane  阅读(66)  评论(0编辑  收藏  举报