leetcode (Contains Duplicate II)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hsx1612727380/article/details/84393443

Title:Contains Duplicate II   219

Difficulty:Easy

原题leetcode地址:https://leetcode.com/problems/contains-duplicate-ii/

1. 采用HashMap,KEY存放数组中的数,Value存放数组中的下标,注意,HashMap中存放之前已经存在的key(value不一样),会重新更新同一个key的value值。

时间复杂度:O(n),一次for循环,遍历整个数组的长度。

空间复杂度:O(n),申请整个一个HashMap,最长需要存放n个。

    /**
     * 采用HashMap,KEY存放数组中的数,Value存放数组中的下标
     * @param nums
     * @param k
     * @return
     */
    public static boolean containsNearbyDuplicate(int[] nums, int k) {

        if (nums == null || nums.length <= 1) {
            return false;
        }

        Map<Integer, Integer> map = new HashMap<>();

        for (int i = 0; i < nums.length; i++) {
            if (map.containsKey(nums[i])) {
                if (i - map.get(nums[i]) <= k) {
                    return true;
                }
                map.put(nums[i], i);
            }
            else {
                map.put(nums[i], i);
            }
        }

        return false;

    }

猜你喜欢

转载自blog.csdn.net/hsx1612727380/article/details/84393443