LeetCode3. 无重复字符的最长子串(java实现)

news2024/9/20 0:51:12

今天分享的题目是LeetCode3. 无重复字符的最长子串,来看题目描述:
在这里插入图片描述
无重复的最长子串,题目有可能有些小伙伴没读太懂,其实就是找到不重复的最长子串,比如eg3,pwwk,那么w出现了两次就不符合要求。
解题思路:滑动窗口+Set集合。
在这里插入图片描述
定义左右指针,让右指针进行滑动,滑动之前先对set集合进行判断,看是否出现过,如果没有出现再往set集合里放。如果出现过了那么需要先进行删除原来出现过的也就是左指针的位置,再往set集合中放。
实现的代码如下:

public int lengthOfLongestSubstring(String s) {
        Set<Object> strings = new HashSet<>();
        int left = 0;
        int len = 0;
        int maxlen = 0;
        int right =0;
        while (right<s.length()){
            if (!strings.contains(s.charAt(right))){
                strings.add(s.charAt(right));
                len++;
                if (len>maxlen){
                    maxlen=len;
                }
                right++;
            }else {
                while (strings.contains(s.charAt(right))){
                    strings.remove(s.charAt(left));
                    left++;
                    len--;
                }
                //直至不包含了
                strings.add(s.charAt(right));
                right++;
                len++;

            }
        }
        return maxlen;


    }

需要注意的是对set集合已经包含了元素的处理,需要用一个while循环一直删除重复的元素,然后跳出循环后需要对右指针的元素添加。
如果说没有看太懂的话推荐下b站的博主:[https://www.bilibili.com/video/BV113411v7Ak/?spm_id_from=333.337.search-card.all.click&vd_source=676b214f47ae14dd73164e90955d4dc0]
今天的算法就分享到这里了,如果觉得对你有帮助希望给个小小的3连。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1967824.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot中的server.context-path

一、问题引入 书接上回&#xff0c;SpringBoot 在 idea中的 .idea和 .iml文件-CSDN博客&#xff0c;我在boot-test的测试项目中使用的 SpringBoot版本为 1.3.5.RELEASE&#xff0c;新项目 cps-task中使用的版本为 2.4.8&#xff0c;造成了连接异常&#xff0c;问题很好解决&…

一文看懂Java反射、注解、UML图和Lambda表达式

反射 定义: 反射是 java 开发语言的特征之一&#xff0c;它允许 java 程序对自身进行检查(自审)&#xff0c;并能直接操作程序内部属性&#xff0c;即就是将类中的各种成分映射成一个 java 对象&#xff0c;利用反射技术可以对一个类进行解剖&#xff0c;将各个组成部分映射成…

c++STL容器中vector的使用,模拟实现及迭代器使用注意事项和迭代器失效问题

目录 前言&#xff1a; 1.vector的介绍及使用 1.2 vector的使用 1.2 1 vector的定义 1.2 2 vector iterator&#xff08;迭代器&#xff09;的使用 1.2.3 vector 空间增长问题 1.2.4 vector 增删查改 1.2.5vector 迭代器失效问题。 2.vector模拟实现 2.1 std::vect…

RAG 革命:NVIDIA 工作站如何成为企业 AI 的秘密武器

在深圳的一家科技初创公司&#xff0c;首席技术官李梅正在向她的团队展示一个令人兴奋的新项目。“看这个&#xff0c;” 她指着屏幕上的实时演示说&#xff0c;“我们刚刚用公司的技术文档训练了一个 AI 助手&#xff0c;它现在可以回答任何关于我们产品的问题&#xff0c;而且…

鸿蒙系统开发【网络管理】

网络管理 介绍 此Demo展示如何查询网络详情、域名解析、网络状态监听等功能。 效果预览&#xff1a; 使用说明&#xff1a; 1.启动应用&#xff0c;在点击检查网络、网络详情、网络连接信息后&#xff0c;展示对应的信息&#xff1b; 2.在域名解析的模块下&#xff0c;输入…

一款功能强大的免费开源卸载工具

BCUninstaller&#xff0c;也称为Bulk Crap Uninstaller&#xff08;简称BCU&#xff09;&#xff0c;是一款免费且开源的Windows平台专用程序卸载工具。它的主要功能是帮助用户高效地批量卸载不需要的应用程序和组件&#xff0c;从而优化系统性能。 BCUninstaller功能特点 批…

8.1 tomcat+jdk

接着昨天的 npm run serve 构建项目 npm run build ls ls dist/ vim dist/index.html [rootweb eleme_web]# cd /usr/local/nginx/conf/ [rootweb conf]# ls 将静态的项目移动到nginx中 [rootweb nginx]# cd conf.d/ [rootweb conf.d]# ls qd.conf [rootweb conf.…

有关 AI 与产品经理的三个暴论

最近跟朋友聊 AI 聊得挺多。往往是不管做什么的&#xff0c;凡是跟互联网有联系的&#xff0c;都挺兴奋&#xff0c;都在讨论 AI。 聊着聊着&#xff0c;有三个暴论浮出水面&#xff0c;跟各位分享。暴论归暴论&#xff0c;道理还是在的。 1. AI 带来的新技术&#xff0c;会带…

2024年中国大模型能力评测:谁是AI领域的真王者?

2024年中国大模型能力评测深度解析 随着人工智能技术的飞速发展&#xff0c;中国的大模型正迎来前所未有的机遇与挑战。近期发布的《2024年中国大模型能力评测》报告&#xff0c;揭示了这一领域的最新趋势、发展瓶颈以及未来方向。本文将基于该报告&#xff0c;带您深入了解中国…

ssh免密认证配置

一.首先要做root用户在sshd服务中的允许 [root172 ~]# vim /etc/ssh/sshd_configPermitRootLogin yes 二.监控动作 watch -n 1 "tail -n 3 /etc/passwd /etc/group;ls -l /home" 三.用户建立时的命令 1.纯净的实验环境 [root172 ~]# rm -fr ~/.ssh/ 2.生成密钥…

【初阶数据结构篇】冒泡排序和快速排序(中篇)

文章目录 冒泡排序和快速排序前言代码位置冒泡排序快速排序递归法实现hoare版本挖坑法lomuto前后指针递归法复杂度分析 非递归法实现 冒泡排序和快速排序 前言 本篇以排升序为例 代码位置 gitee 冒泡排序 动图理解 作为第一个接触的排序算法&#xff0c;冒泡排序想必大…

Monaco 使用 SelectionRange

Monaco 中有个展开选择的功能&#xff0c;默认如果我们选择 function&#xff0c;扩展选择就会选择到行尾&#xff0c;再扩展就会选中整个函数&#xff0c;效果如下&#xff1a; Monaco 可以自定义选择范围&#xff0c;通过 registerSelectionRangeProvider 注册 selectionRang…

yarn运行失败

目录 1.项目初始化失败2.powershell管理身份运行3.正常4.项目启动5.接下来安装yarn过程 使用vuepress构建静态文档网站1.标题This is an H1This is an H2 this is H1this is H2this is H6 2.字体3.分割线4.引用引用接着 5.列表无序列表有序列表 6.表格7.代码 1.项目初始化失败 …

【通俗理解】主动推理模型——从感知到决策的智慧桥梁

【通俗理解】主动推理模型——从感知到决策的智慧桥梁 主动推理模型的类比 你可以把主动推理模型比作一个“智慧导航仪”&#xff0c;它能够帮助我们的大脑在感知世界、更新信念和做出决策的过程中找到最佳路径。 主动推理模型的核心作用 组件/步骤描述感知世界大脑通过感官接…

在vue3的开发环境中为什么使用vite而不是用webpack

1、vite在开发阶段没有打包过程&#xff0c;直接启动一个服务器 2、请求一个模块到开发服务器 3、开发服务器编译模块&#xff0c;根据页面用所需要的依赖去加载文件 4、加载完成后&#xff0c;开发服务器把编译的结果返回给页面 这使得提高了我们在开发阶段运行的效率 vite是…

【漏洞复现】搜狗输入法简单绕过Windows锁屏机制

免责申明 本公众号的技术文章仅供参考&#xff0c;此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等&#xff08;包括但不限于&#xff09;进行检测或维护参考&#xff0c;未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息…

群晖NAS结合内网穿透工具实现远程连接内网SFTP服务传输文件

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

ABAP+json格式数据转换时参数为空没传值

CALL METHOD /UI2/CL_JSON>SERIALIZE 我们在ABAP传输json格式数据到外围系统时&#xff0c;会用到这个类方法 /UI2/CL_JSON>SERIALIZE CALL METHOD /UI2/CL_JSON>SERIALIZEEXPORTINGDATA LO_DATACOMPRESS XPRETTY_NAME /UI2/CL_JSON>PRETTY_M…

LiveBOS UploadFile.do 任意文件上传漏洞复现(XVE-2023-21708)

0x01 产品简介 LiveBOS(Live Business Object System)是顶点软件自主研发的以业务对象建模为核心的业务中间件及其集成开发工具,它通过业务模型建立直接完成软件开发的创新模式,支持各类基于WEB的专业应用软件与行业大型应用的开发。LiveBOS系统由三个相对独立的产品构成:…

DBA界中的ACE 是时候谢幕了

很多人把ACE当作神一样去膜拜! 还脑残地帮ACE去宣传,需要对ACE要有敬畏之心! ACE 全称是 America Certification Eloquent 首先由ORACLE公司 (美国公司) 在最近20年推出来的荣耀称号! 授予一些通过OCP,OCM认证的DBA在社区为其产品使用和推广做出贡献的荣耀称号 为什么我们…