File tree 2 files changed +40
-0
lines changed
2 files changed +40
-0
lines changed Original file line number Diff line number Diff line change
1
+ "abcabcbb"
2
+ "bbbbb"
3
+ "pwwkew"
4
+ "dvdf"
5
+ "abba"
Original file line number Diff line number Diff line change
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
+
You can’t perform that action at this time.
0 commit comments