Skip to content

Commit 0527960

Browse files
committed
improve sliding window logic
1 parent d642590 commit 0527960

File tree

1 file changed

+19
-0
lines changed
  • longest-substring-without-repeating-characters

1 file changed

+19
-0
lines changed

โ€Žlongest-substring-without-repeating-characters/mmyeon.tsโ€Ž

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,22 @@ function lengthOfLongestSubstring(s: string): number {
3434

3535
return maxLength;
3636
}
37+
38+
// Map ์‚ฌ์šฉํ•ด์„œ ์ค‘๋ณต ๋ฐœ์ƒ์‹œ start ์ธ๋ฑ์Šค๊ฐ€ ์ ํ”„ํ•˜๋„๋ก ๊ฐœ์„ 
39+
function lengthOfLongestSubstring(s: string): number {
40+
let start = 0,
41+
maxLength = 0;
42+
const map = new Map<string, number>();
43+
44+
for (let i = 0; i < s.length; i++) {
45+
const char = s[i];
46+
// ์ค‘๋ณต ์žˆ๋Š” ๊ฒฝ์šฐ, ์ค‘๋ณต๋ฌธ์ž์˜ ๋‹ค์Œ ์œ„์น˜๋กœ ์ ํ”„
47+
if (map.has(char)) start = Math.max(start, map.get(char)! + 1);
48+
// ์ธ๋ฑ์Šค ๊ฐฑ์‹ 
49+
map.set(char, i);
50+
51+
maxLength = Math.max(maxLength, i - start + 1);
52+
}
53+
54+
return maxLength;
55+
}

0 commit comments

Comments
ย (0)