【leetcode 3. 无重复字符的最长子串】解题报告
2024-10-21 20:24:41
思路:滑动窗口的思想
方法一:滑动窗口
int lengthOfLongestSubstring(string s) {
/*
控制一个滑动窗口,窗口内的字符都是不重复的,通过set可以做到判断字符是否重复
*/
unordered_set<char> set;
size_t maxL=;
for(int l=,r=;r<s.size();++r)
{
if (!set.count(s[r])) // 当前判断的元素不存在于滑动窗口[l,r-1]中
set.insert(s[r]); // 将元素放入滑动窗口(即记录不重复字符)
else // 当前判断的元素已经存在于滑动窗口[l,r-1]中
{
while(set.count(s[r])) // 从左缩短窗口,直到剔除当前判断的元素为止
set.erase(s[l++]);
set.insert(s[r]); // 将当前判断元素放入到滑动窗口中
}
maxL=max(maxL,set.size()); // 更新无重复字符的最长子串
}
return maxL;
}
最新文章
- 【Web动画】CSS3 3D 行星运转 &;&; 浏览器渲染原理
- bx, bp, si, di寄存器的使用规则
- Windows Server 2008 R2 负载平衡入门篇
- 《linux内核设计与实现》读书笔记第十八章
- 带事物处理的DBHelp和sql语句
- 深入理解Javascript闭包 新手版
- Python 3学习笔记2
- ENVI5.1安装破解教程
- 【转】Xcode 7 真机调试详细步骤
- NCPC 2015 - Problem A - Adjoin the Networks
- runat=";server"; 是什么意思?
- LeetCode OJ 202. Happy Number
- phpdocumentor 安装以及使用说明
- CSS怎么在项目里引入自定义字体(@font-face)
- C# 如何获取可执行文件路径的上上级目录
- 网工的Linux系统学习历程
- jQuery 操作Cookie
- Alpha冲刺 - (5/10)
- 一次mysql数据关于union+concat用法的记录
- JavaScript数组转字符串,字符串转数组
热门文章
- eclipse自动提示功能没了的解决办法
- python习题-用交集方式产生随机密码
- 如何在MySQL中查询当前数据上一条和下一条的记录
- codeforces 707D D. Persistent Bookcase(dfs)
- C语言小程序(五)、数组查询
- 无旋Treap - BZOJ1014火星人 &; 可持久化版文艺平衡树
- linux 在后台运行数据库导入导出命令
- bzoj 3439: Kpm的MC密码 Trie+动态开点线段树
- bzoj 3689: 异或之 Trie+堆
- params 和 query 传参的区别