网站建设费用包括,济南做网站公司,新乡网站开发,wordpress访问很慢吗?目录 1.题目链接#xff1a;3.无重复字符的最长字符
2.题目描述#xff1a;
3.解法(滑动窗口)#xff1a; 1.题目链接#xff1a;3.无重复字符的最长字符
2.题目描述#xff1a;
给定一个字符串 s #xff0c;请你找出其中不含有重复字符的 最长 子串 的长度。 示例…目录 1.题目链接3.无重复字符的最长字符
2.题目描述
3.解法(滑动窗口) 1.题目链接3.无重复字符的最长字符
2.题目描述
给定一个字符串 s 请你找出其中不含有重复字符的 最长 子串 的长度。 示例 1:
输入: s abcabcbb
输出: 3
解释: 因为无重复字符的最长子串是 abc所以其长度为 3。示例 2:
输入: s bbbbb
输出: 1
解释: 因为无重复字符的最长子串是 b所以其长度为 1。示例 3:
输入: s pwwkew
输出: 3
解释: 因为无重复字符的最长子串是 wke所以其长度为 3。请注意你的答案必须是 子串 的长度pwke 是一个子序列不是子串。提示
0 s.length 5 * 104s 由英文字母、数字、符号和空格组成
3.解法(滑动窗口) 算法思路 研究对象依旧是一段连续的区间因此继续使用滑动窗口思想来优化。 让滑动窗口满足窗口内所有元素都是不重复的。 做法右端元素ch进入窗口时哈希表统计这个赐福的频次 如果这个字符出现的频次超过1说明窗口内有重复元素那么就从左侧开始划出窗口直到ch这个元素的频次变为1然后再更新结果。如果没有超过1说明当前窗口没有重复元素可以直接更新结构 class Solution {
public:int lengthOfLongestSubstring(string s) {int hash[128] {0};int left 0,right 0;int len0, n s.size();while(right n){hash[s[right]];while(hash[s[right]]1)hash[s[left]]--;len max(len,right - left 1);right;}return len;}
};