File tree Expand file tree Collapse file tree 1 file changed +27
-0
lines changed
longest-repeating-character-replacement Expand file tree Collapse file tree 1 file changed +27
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * [Problem]: [424] Longest Repeating Character Replacement
3
+ * (https://leetcode.com/problems/longest-repeating-character-replacement/description/)
4
+ */
5
+ function characterReplacement ( s : string , k : number ) : number {
6
+ //시간복잡도 O(n)
7
+ //공간복잡도 O(n)
8
+ let left = 0 ;
9
+ let right = 0 ;
10
+ let result = 0 ;
11
+ let map = new Map < string , number > ( ) ;
12
+
13
+ while ( right < s . length ) {
14
+ map . set ( s [ right ] , ( map . get ( s [ right ] ) || 0 ) + 1 ) ;
15
+
16
+ const maxFreq = Math . max ( ...Array . from ( map . values ( ) ) ) ;
17
+ if ( right - left + 1 - maxFreq > k ) {
18
+ map . set ( s [ left ] , map . get ( s [ left ] ) ! - 1 ) ;
19
+ left ++ ;
20
+ }
21
+
22
+ result = Math . max ( result , right - left + 1 ) ;
23
+ right ++ ;
24
+ }
25
+
26
+ return result ;
27
+ }
You can’t perform that action at this time.
0 commit comments