Skip to content

Commit 8e06ad4

Browse files
authored
Update 0219-contains-duplicate-ii.js
Shortens and simplifies current solution by changing hashmap into a hashset.
1 parent 40c3619 commit 8e06ad4

File tree

1 file changed

+16
-18
lines changed

1 file changed

+16
-18
lines changed

javascript/0219-contains-duplicate-ii.js

+16-18
Original file line numberDiff line numberDiff line change
@@ -3,26 +3,24 @@
33
* @param {number} k
44
* @return {boolean}
55
*/
6-
var containsNearbyDuplicate = function (nums, k) {
7-
let leftPtr = 0;
8-
let rightPtr = 0;
9-
let windowHashMap = new Map();
10-
while (rightPtr < nums.length) {
11-
if (windowHashMap.has(nums[rightPtr])) {
12-
return true;
6+
/**
7+
* @param {number[]} nums
8+
* @param {number} k
9+
* @return {boolean}
10+
*/
11+
var containsNearbyDuplicate = function(nums, k) {
12+
const window = new Set();
13+
let L = 0;
14+
for(let R = 0; R < nums.length; R++){
15+
if(!window.has(nums[R])){
16+
window.add(nums[R]);
1317
} else {
14-
windowHashMap.set(nums[rightPtr], 1);
18+
return true
1519
}
16-
rightPtr++;
17-
if (rightPtr - leftPtr > k) {
18-
let leftPtrValue = windowHashMap.get(nums[leftPtr]);
19-
leftPtrValue--;
20-
if (leftPtrValue == 0) {
21-
windowHashMap.delete(nums[leftPtr]);
22-
} else {
23-
windowHashMap.set(nums[leftPtr], leftPtrValue);
24-
}
25-
leftPtr++;
20+
21+
if(R - L + 1 > k){
22+
window.delete(nums[L])
23+
L++;
2624
}
2725
}
2826
return false;

0 commit comments

Comments
 (0)