Skip to content

Commit 74ae9dc

Browse files
committed
feat: add question 3
0 parents  commit 74ae9dc

File tree

2 files changed

+40
-0
lines changed

2 files changed

+40
-0
lines changed

3.data

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
"abcabcbb"
2+
"bbbbb"
3+
"pwwkew"
4+
"dvdf"
5+
"abba"

3.无重复字符的最长子串.js

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
/*
2+
* @lc app=leetcode.cn id=3 lang=javascript
3+
*
4+
* [3] 无重复字符的最长子串
5+
*
6+
* 思路:
7+
* 1. 记录最大值
8+
* 2. 记录当前子字符串起点
9+
* 3. 记录每个字母出现的位置, 如果位置有值则说明该字母出现过了
10+
* 如果该字母的上一次出现位置大于起点值, 则更新起点位置
11+
* 反之, 则继续用当前起点值, 因为说明有其它重复字母的上一次位置是大于当前字母上一次位置
12+
*/
13+
14+
// @lc code=start
15+
/**
16+
* @param {string} s
17+
* @return {number}
18+
*/
19+
var lengthOfLongestSubstring = function(s) {
20+
var max = 0;
21+
var map = {};
22+
var start = -1;
23+
24+
for (var i = 0; i < s.length; i++) {
25+
if (map[s[i]] !== undefined && start < map[s[i]]) {
26+
start = map[s[i]];
27+
}
28+
map[s[i]] = i;
29+
max = Math.max(max, i - start);
30+
}
31+
32+
return max;
33+
};
34+
// @lc code=end
35+

0 commit comments

Comments
 (0)