LeetCode 0219. Contains Duplicate II Solution in Java, C++, Python & More | Explanation + Code

CoderIndeed
0
0219. Contains Duplicate II

Description

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:

  • 1 <= nums.length <= 105
  • -109 <= nums[i] <= 109
  • 0 <= k <= 105

Solutions

Solution 1: Hash Table

We use a hash table d to store the recently traversed numbers and their corresponding indices.

Traverse the array nums. For the current element nums[i], if it exists in the hash table and the difference between the indices is no more than k, return true. Otherwise, add the current element to the hash table.

After traversing, return false.

The time complexity is O(n), and the space complexity is O(n). Here, n is the length of the array nums.

PythonJavaC++GoTypeScriptJavaScriptC#PHP
class Solution: def containsNearbyDuplicate(self, nums: List[int], k: int) -> bool: d = {} for i, x in enumerate(nums): if x in d and i - d[x] <= k: return True d[x] = i return False(code-box)

Post a Comment

0Comments

Post a Comment (0)

#buttons=(Accept !) #days=(20)

Our website uses cookies to enhance your experience. Check Now
Accept !