Skip to content

Commit 279fb53

Browse files
committed
小傅哥 | 动态规划
1 parent e07b0ea commit 279fb53

File tree

2 files changed

+38
-8
lines changed
  • Dynamic Programming/Longest Substring Without Repeating Characters

2 files changed

+38
-8
lines changed
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# 无重复字符的最长子串
2+
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
3+
4+
**示例 1: **
5+
6+
```
7+
输入: "abcabcbb"
8+
输出: 3
9+
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
10+
```
11+
12+
**示例 2:**
13+
14+
输入: "bbbbb"
15+
```
16+
输出: 1
17+
解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。
18+
示例 3:
19+
```
20+
21+
**输入: "pwwkew"**
22+
23+
```
24+
输出: 3
25+
解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。
26+
  请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。
27+
```
28+
Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
// import visualization libraries {
2-
const { Tracer, Array1DTracer,LogTracer, Array2DTracer, ChartTracer, Randomize, Layout, VerticalLayout } = require('algorithm-visualizer');
2+
const {Tracer, Array1DTracer, LogTracer, Array2DTracer, ChartTracer, Randomize, Layout, VerticalLayout} = require('algorithm-visualizer');
33
// }
44

55
// define tracer variables {
6-
const array2dTracer = new Array1DTracer('Array');
6+
const tracer = new Array1DTracer('Array');
77
const logger = new LogTracer('无重复字符的最长子串');
88

9-
Layout.setRoot(new VerticalLayout([array2dTracer,logger]));
9+
Layout.setRoot(new VerticalLayout([array2dTracer, logger]));
1010
// }
1111

1212
var s = "ababcabcdabcdeabcdefabac";
1313

1414
(function main() {
15-
array2dTracer.set(s);
15+
tracer.set(s);
1616

1717
var beginIdx = 0, endIdx = 0, maxSize = 0;
1818
for (var i = 0; i < s.length; i++) {
@@ -21,13 +21,15 @@ var s = "ababcabcdabcdeabcdefabac";
2121

2222
var existIdx = s.indexOf(s.charAt(i), beginIdx);
2323
if (existIdx < endIdx) {
24-
array2dTracer.select(beginIdx, i-1);
25-
24+
tracer.select(beginIdx, i - 1);
25+
tracer.patch(i);
2626
beginIdx = existIdx + 1;
2727

2828
Tracer.delay();
29-
array2dTracer.deselect(0, beginIdx);
29+
tracer.deselect(0, beginIdx);
30+
tracer.depatch(i);
3031

32+
logger.println('碰撞长度:' + (endIdx - beginIdx + 1));
3133
}
3234

3335
var e = endIdx - beginIdx + 1;
@@ -38,6 +40,6 @@ var s = "ababcabcdabcdeabcdefabac";
3840

3941
}
4042

41-
logger.println(maxSize);
43+
tracer.println('最长长度:' + maxSize);
4244

4345
})();

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy