File tree 1 file changed +16
-18
lines changed
1 file changed +16
-18
lines changed Original file line number Diff line number Diff line change 3
3
* @param {number } k
4
4
* @return {boolean }
5
5
*/
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 ] ) ;
13
17
} else {
14
- windowHashMap . set ( nums [ rightPtr ] , 1 ) ;
18
+ return true
15
19
}
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 ++ ;
26
24
}
27
25
}
28
26
return false ;
You can’t perform that action at this time.
0 commit comments