当前位置: 首页 > news >正文

滑动窗口 | Java | (hot100) 力扣 3

力扣 3.无重复字符的最长子串

暴力法:双层for循环,i-j的字符查重

滑动窗口:因为这题被分在这个类别里,那么已知要用滑动窗口,思路应该是什么。

反正我想不出来……

  • 看了别人的题解写出来的
  • 出错点:特别容易下标和元素弄混
class Solution {public int lengthOfLongestSubstring(String s) {Set<Character>set = new HashSet<Character>();char ch;int res=0;for(int left=0,right=0; right<s.length(); right++) {ch = s.charAt(right);while(set.contains(ch)) {set.remove(s.charAt(left)); //注意这里是用leftleft++;}set.add(ch);res = Math.max(res, right-left+1);}return res;}
}

ACM模式练习 https://www.acwing.com/problem/content/57/

滑动窗口模板

//外层循环扩展右边界,内层循环扩展左边界
for (int l = 0, r = 0 ; r < n ; r++) {//当前考虑的元素while (l <= r && check()) {//区间[left,right]不符合题意//扩展左边界}//区间[left,right]符合题意,统计相关信息
}

本题变形

腾讯面试题,需要返回的是子串(来自力扣评论)
在这里插入图片描述
我的思路:在这一句下功夫:res = Math.max(res, right-left+1);
多设置一个变量 strLeft,当更新res的时候,strLeft = left。当for循环结束,知道子串长度res和字串起始值strLeft就可以返回字串了

public class Collection01 {public static void main(String[] args) {lengthOfLongestSubstring("pwwkew");}public static int lengthOfLongestSubstring(String s) {Set<Character>set = new HashSet<Character>();char ch;int res=0;int strleft=0;for(int left=0,right=0; right<s.length(); right++) {ch = s.charAt(right);while(set.contains(ch)) {set.remove(s.charAt(left)); //注意这里是用leftleft++;}set.add(ch);if((right-left+1)>res) {res = right-left+1;strleft = left;}}System.out.println(res);System.out.println(strleft);System.out.println(s.substring(strleft,strleft+res));return res;}}
http://www.lryc.cn/news/421748.html

相关文章:

  • 【产品经理】竞品分析怎么理解?拆解一下
  • 合规性导航:处理爬虫数据用于机器学习的最佳实践
  • spring中使用到的设计模式有哪些
  • splitcontainer控件设置固定大小
  • 最近在写的支付模块
  • 解决域名加别名后再代理或者映射到fastadmin项目
  • Armv9.5架构新增的关键扩展--精简版
  • STM32 GPIO 模块
  • 网络剪枝——network-slimming 项目复现
  • Spring 懒加载的实际应用
  • PyQT 串口改动每次点开时更新串口信息
  • 三级_网络技术_19_路由器的配置及使用
  • 【STM32 Blue Pill编程】-STM32CubeIDE开发环境搭建与点亮LED
  • 【数据结构】六、图:4.图的遍历(深度优先算法DFS、广度优先算法BFS)
  • 29、号外!号外!ERA5再分析数据下载方式更新啦
  • 智能识别,2024年SD卡数据恢复软件的智能进化
  • 浙大数据结构慕课课后题(04-树5 Root of AVL Tree)
  • Golang | Leetcode Golang题解之第331题验证二叉树的前序序列化
  • zdppy+vue3+onlyoffice文档管理系统项目实战 20240812上课笔记
  • 怎么将mov视频转换成mp4?将mov视频转换成mp4的方法
  • 大数据技术——实战项目:广告数仓(第五部分)
  • 计算机毕业设计 家电销售展示平台 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试
  • C# 根据MySQL数据库中数据,批量删除OSS上的垃圾文件
  • Vue3+Element-plus+setup使用vuemap/vue-amap实现高德地图API相关操作
  • Windows配置开机直达桌面并跳过锁屏登录界面在 Windows 10 中添加在启动时自动运行的应用
  • pythonUI自动化007::pytest的组成以及运行
  • 开放式耳机哪个品牌好用又实惠?五大口碑精品分享
  • 代码随想录算法训练营day39||动态规划07:多重背包+打家劫舍
  • WebSocket革新:用PHP实现实时Web通信
  • Python教程(十三):常用内置模块详解