news 2026/9/1 8:02:09

力扣 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/8/31 9:15:46

挥手点亮圣诞:AI 3D 魔法树教程

临近圣诞节&#xff0c;大家都在思考如何让今年更有仪式感&#xff1a;搞一棵圣诞树&#xff0c;还是干脆上一张滤镜海报&#xff1f;但如果你想让节日过得更「有科技味儿」&#xff0c;今年有个更酷的选择——一棵能听懂你手势、会展示你的照片、还能随你指挥聚散旋转的「3D C…

作者头像 李华
网站建设 2026/8/31 9:43:22

软件许可优化技术栈:动态资源池化+智能调度+合规审计融合

软件许可优化技术栈&#xff1a;动态资源池化智能调度合规审计融合一、为什么企业需要软件许可优化&#xff1f;在数字化转型的浪潮下&#xff0c;软件已经成为各行各业的核心资产&#xff0c;但随之而来的软件许可成本却不断攀升&#xff0c;成为很多企业成本控制的痛点。是在…

作者头像 李华
网站建设 2026/9/1 2:35:03

Solidity函数修改器中包含return的执行顺序

关键概念 在 Solidity 中,如果在修改器中执行 return,会立即终止当前函数的执行,不会执行目标函数体,但会执行修改器中 _; 之后的代码。 执行顺序详解 基本执行流程 // SPDX-License-Identifier: MIT pragma solidity ^0.8.0;contract ModifierReturn {uint256 public …

作者头像 李华
网站建设 2026/8/31 22:52:50

Node.js C++ Addons:FFI 与 N-API 的性能与兼容性对比

欢迎来到本次关于Node.js C Addons的深入探讨。在Node.js生态系统中&#xff0c;JavaScript以其单线程、事件驱动的非阻塞I/O模型而闻名&#xff0c;非常适合处理高并发的网络应用。然而&#xff0c;当面临计算密集型任务&#xff08;如图像处理、密码学、科学计算&#xff09;…

作者头像 李华
网站建设 2026/8/31 23:21:42

小学生学C++编程 (变量精讲)

一、&#x1f389;✨《C 变量王国大冒险》✨&#x1f389;1、&#x1f3f0; 什么是变量&#xff1f;——“贴着名字的小盒子”想象你来到一个神奇的王国——变量王国&#xff01; 这里有很多很多小盒子&#xff0c;每个盒子上都贴着一个名字&#xff0c;比如&#xff1a;age&am…

作者头像 李华