滑动窗口本质是一个队列,输入进入这个窗口(队列),当不满足条件时,移动这个队列;
如何移动,只需要将左边的元素移除即可,直到满足条件。

import java.util.HashSet;
import java.util.Set;public class Solution {public int lengthOfLongestSubstring(String s){//哈希集合,记录每个字符是否出现过Set<Character> occ = new HashSet<Character>();int n = s.length();int rk = -1,ans = 0;for(int i =0;i<n;++i){if (i!=0){//左指针向右移动一格,移除一个字符occ.remove(s.charAt(i-1));}while (rk+1<n&&!occ.contains(s.charAt(rk+1))){//不断地移动右指针occ.add(s.charAt(rk+1));++rk;}//第i到rk个字符是一个极长的无重复字符字串,//该循环执行该语句,对于找到下一个重复字符是没有意义的ans = Math.max(ans,rk-i+1);}return ans;}
}

滑动窗口1——无重复字符的最长字串相关推荐

  1. [剑指offer]面试题第[48]题[Leetcode][JAVA][第3题][无重复字符的最长字串][滑动窗口][HashSet/Map]

    [问题描述][第3题][无重复字符的最长字串] 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度.示例 1:输入: "abcabcbb" 输出: 3 解释: 因为无重 ...

  2. python leetcode_python实现leetcode中无重复字符的最长字串

    ​无重复字符的最长字串是一道经典的额字符串处理算法的题目,日常编程过程中,处理字符串是很多见的.用Python来实现leetcode这道算法题,这题会涉及到一个概念"滑动窗口"的概 ...

  3. php无重复字符的最长子串,无重复字符的最长字串问题

    leetcode3:无重复字符的最长字串问题 问题描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释 ...

  4. LeetCode 3.无重复字符的最长字串(滑动窗口)

    题目描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "a ...

  5. LeetCode中等题之无重复字符的最长字串

    题目 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 &q ...

  6. leetcode刷题:1.无重复字符的最长字串

    题目: 方法一: 首先我们可以想到暴力解法,就是 ·逐个生成字符串 ·看他受否含有重复字符 如下代码暴力法: int LenOfUniqueStr(char* Start) {int Validity ...

  7. 算法--无重复字符的最长字串(详细)

    给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度 class Solution {public int lengthOfLongestSubstring(String s) {// ...

  8. LeetCode-滑动窗口-3. 无重复字符的最长子串

    3. 无重复字符的最长子串 思路:滑动窗口 class Solution { public:int lengthOfLongestSubstring(string s) {if(s.empty()) ...

  9. 力扣第三题 无重复字符的最长子串

    有啥不懂的评论区可以问 ### 解题思路 双指针指向无重复字符的最长字串   而双指针构成的那部分可以看成一个滑动窗口  中间运用双for循环 外面for循环遍历整个字符串,内循环遍历整个滑动窗口   ...

最新文章

  1. python简单装饰器_python装饰器的简单示例
  2. windows命令_用Windows恢复环境(WinRE)排除电脑故障,只需一条命令
  3. 云南省2021高考成绩查询时间,2021云南高考成绩什么时候几点可以查
  4. java匹配出某单词除外_java正则匹配 指定内容以外的 内容
  5. 最新最全vuepress零基础搭建(github搭建+新增插件)
  6. C++成员函数指针的应用
  7. 数据结构 5-0 树与二叉树总结
  8. 透视宝移动端对Unity手机游戏引擎监控实现
  9. linux的一些软件的安装路径
  10. 超简单的内网邮件服务器搭建(CentOS7 postfix+dovecot)
  11. java视频上传,播放预览,解决苹果手机视频无法预览的问题
  12. 八数码问题c语言,八数码问题的可解性
  13. 关于Albedo贴图、颜色贴图、Metallic 贴图、Specular贴图、法线贴图、视差贴图、凹凸贴图、Height Map高度贴图、AO 贴图Occlusion 贴图、Emission 贴图等
  14. svc预测概率_sklearn-SVC实现与类参数
  15. 2022-2027年中国智能服务机器人行业发展监测及投资战略研究报告
  16. html5 电子白板 直播,HTML5 canvas教程 如何实现电子白板
  17. jetty 去掉项目名称访问
  18. anbox 使用情况_如何在Linux PC上启动并运行Anbox?
  19. js访问对方手机文件夹_Javascript读取某文件夹下的所有文件
  20. 【C语言】用递归编写程序计算Hermite Polynomials(厄密多项式)

热门文章

  1. 【C++】随机函数的使用
  2. 如何在oracle中查询所有用户表的表名、主键名称、索引、外键等 - Oracle   基础和管理_files...
  3. 安装nokogiri前提
  4. ICSharpCode.SharpZipLib 压缩、解压文件 附源码
  5. PHP arrray_filter(), array_map()区别与应用
  6. 洛谷P1690 贪婪的Copy 题解
  7. union的限制, 临时表大小的优化
  8. [JS+CSS] - 新浪微博滚动特效[兼容FF,Chrome和IE6,7,8]
  9. 正则表达式基本语法规范
  10. lucene案例demo