219. Contains Duplicate II

Given an array of integers and an integer

k

, find out whether there are two distinct indices

i

and

j

in the array such that

nums[i] = nums[j]

and the

absolute

difference between

i

and

j

is at most

k

.

class Solution {
    public boolean containsNearbyDuplicate(int[] nums, int k) {
        if (nums == null || nums.length == 0) return false;

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

        for (int i = 0; i < nums.length; i++){
            if (!hash.containsKey(nums[i])){
                hash.put(nums[i], i);
            }
            else{
                int index = hash.get(nums[i]);

                if (i - index <= k) return true;

                hash.put(nums[i], i);
            }
        }

        return false;
    }
}

results for ""

    No results matching ""