← All problems

219. Contains Duplicate II

EasyOpen on LeetCodeProblem statement

Problem Statement

219. Contains Duplicate II

Easy


Given an integer array nums and an integer k, return true if there are two distinct indices i and j in the array such that nums[i] == nums[j] and abs(i - j) <= k.

 

Example 1:

Input: nums = [1,2,3,1], k = 3
Output: true

Example 2:

Input: nums = [1,0,1,1], k = 1
Output: true

Example 3:

Input: nums = [1,2,3,1,2,3], k = 2
Output: false

 

Constraints:

C++ — alternative 1

Source file
class Solution {
public:
    bool containsNearbyDuplicate(vector<int>& nums, int k) {
        unordered_map<int, int> m;
        for(uint_fast8_t i=0; i<(uint_fast8_t)nums.size(); i++){
            if(m[nums[i]] && i-m[nums[i]]<k)
                return true;
            m[nums[i]]=i+1;
        }
        return false;
    }
};