news 2026/7/29 0:36:39

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
力扣 3.无重复字符的最长子串
Problem: 3.无重复字符的最长子串

思路

滑动窗口

解题过程

通过滑动窗口来判断最长字串,起初窗口的左(l)右(r)边界都在第一个字母位置,并且将字母存入一个Map数组用来判重(也可以用Set)。
之后就开始滑动,右边界一直往右扩大,扩大的同时把经过的字母存入Map数组,存入之前判断是否有已经存在的字母了,如果说明以左边这个字母(s[l])为开头的无重复子串已经达到最长子串了,然后左边界就需要开始缩减(向右移动),直到找到与右边界目前所处位置的字符相同的字符为止,然后把该字符剔除,然后左边界再右移一位,从该位置当作开头,右边界接着重新继续滑动。
依次反复,每找到依次重复的,当前的长度就和ans取一次max。

复杂度

  • 时间复杂度: O(n)
  • 空间复杂度: O(n)

Code

class Solution { public int lengthOfLongestSubstring(String s) { int ans = 1; int len = s.length(); if (len == 0) ans = 0; int l = 0; int r = 0; Map<Character,Integer> count = new HashMap<>(); while(r < len) { if (count.containsKey(s.charAt(r))) { ans = Math.max(ans, r - l); while(l < len && s.charAt(l) != s.charAt(r)) { count.remove(s.charAt(l)); l++; } count.remove(s.charAt(l)); l++; } else { count.put(s.charAt(r),1); r++; } } ans = Math.max(ans, len - l); return ans; } }
大佬们有更好方法希望能评论区指点一下~
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/26 16:48:39

【高并发场景下的秘密武器】:ASP.NET Core 9 WebSocket压缩协议实战落地

第一章&#xff1a;ASP.NET Core 9 WebSocket压缩协议概述在现代实时Web应用开发中&#xff0c;WebSocket已成为实现双向通信的核心技术。随着数据交互频率的提升&#xff0c;网络传输效率成为性能优化的关键点之一。ASP.NET Core 9 引入了对 WebSocket 压缩协议的原生支持&…

作者头像 李华
网站建设 2026/7/23 16:04:33

RAG实践指南:一文搞定大模型RAG过程

RAG是什么&#xff1f; RAG&#xff08;Retrieval-Augmented Generation&#xff0c;检索增强生成&#xff09;, 一种AI框架&#xff0c;将传统的信息检索系统(例如数据库)的优势与生成式大语言模型(LLM)的功能结合在一起。不再依赖LLM训练时的固有知识&#xff0c;而是在回答问…

作者头像 李华
网站建设 2026/7/28 13:32:00

一份全面的AI_Agent知识地图

本文是一篇关于AI Agent的全面综述&#xff0c;系统介绍了AI Agent从诞生到应用的完整框架。内容涵盖配置文件定义&#xff08;静态与动态&#xff09;、记忆机制&#xff08;短期与长期&#xff09;、计划与决策能力、行动执行、多智能体协作模式、自我进化机制、测试评估方法…

作者头像 李华
网站建设 2026/7/28 18:44:47

软件、硬件的兼容性的测试,你知多少?

对于基于计算机平台的软件,在测试过程中必须考虑软、硬件的兼容性,在设计测试用例的过程中必须考虑数据转换或转移的问题,应该尽力发现其可能带来的错误。不仅是基于计算机平台的软件,对于嵌入式软件也一样,在软件升级时,也需要考虑硬件平台的兼容性。一个软件具有良好的…

作者头像 李华
网站建设 2026/7/26 23:11:11

【翻译】【SOMEIP-SD】Page37 - Page39

文章目录5.1.2.4.4 IPv6 Endpoint Option5.1.2.4.4 IPv6 Endpoint Option SOME/IP-SD 使用IPv6 Endpoint Option去标记一个Endpoint。Endpoint包含发送者的IP地址、传输协议&#xff08;TCP/UDP&#xff09;、Port号。Port号同时适用与Event和Notification Event [PRS_SOMEIP…

作者头像 李华
网站建设 2026/7/24 14:56:11

Raft算法(二)

日志项的结构与理解 日志项是Raft中存储数据的基本单元&#xff0c;由以下三部分组成&#xff1a; 指令&#xff08;Command&#xff09;&#xff1a;客户端请求的操作指令&#xff0c;由状态机执行。索引值&#xff08;Log Index&#xff09;&#xff1a;连续递增的整数&#…

作者头像 李华