0%

Leetcode-3:无重复字符的最长子串

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。

题目来源

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/

示例 1:

输入: “abcabcbb”

输出: 3

解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。

示例 2:

输入: “bbbbb”

输出: 1

解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。

示例 3:

输入: “pwwkew”

输出: 3

解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。

请注意,你的答案必须是 子串 的长度,”pwke” 是一个子序列,不是子串。

题解思路

没思路,看官方题解

题解代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int length = s.length();
int current = 0;
Map<Character, Integer> map = new HashMap<>();
// j 记录重复字段的最大值
for (int i = 0, j = 0; i < length; i++) {
// 取第 i 个元素 , 判断在不在 map 里面
if (map.containsKey(s.charAt(i))) {
// 如果在
j = Math.max(map.get(s.charAt(i)), j);
}
// 拿到滑动窗口的大小
current = Math.max(current, i - j + 1);
map.put(s.charAt(i), i + 1);
}
return current;
这是打赏的地方...

本文标题:Leetcode-3:无重复字符的最长子串

文章作者:Mr.Sun

发布时间:2020年01月06日 - 10:51:23

最后更新:2020年06月10日 - 10:01:44

原始链接:http://www.blog.sun-iot.xyz/posts/b598e250

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

---------Thanks for your attention---------