LeetCode——无重复的最长子串(中等)

news2024/11/26 22:29:09

题目

给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度

示例 1:

输入: s = "abcabcbb"
输出: 3 
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。

示例 2:

输入: s = "bbbbb"
输出: 1
解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。

示例 3:

输入: s = "pwwkew"
输出: 3
解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。
     请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。

题解

使用一个数组来维护滑动窗口

遍历字符串,判断字符是否在滑动窗口数组里

不在则 push 进数组
在则删除滑动窗口数组里相同字符及相同字符前的字符,然后将当前字符 push 进数组
然后将 max 更新为当前最长子串的长度
遍历完,返回 max 即可

 

/**
 * @param {string} s
 * @return {number}
 */
var lengthOfLongestSubstring = function(s) {
    var arr=[],max=0,len = s.length;
    for(var i = 0;i<len;i++)
    {
        var index = arr.indexOf(s[i]);
        if(index!==-1)
        {
            arr.splice(0,index+1);
            
        }
        arr.push(s[i]);
        max = Math.max(max,arr.length);
    }
    return max;
};

indexOf()返回-1代表在数组或者字符串里找不到该字符

splice()函数第一个参数表示要删除或者添加元素的位置,第二个参数表示删除元素的个数,第三个参数表示要添加的元素

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

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

相关文章

【GAN】pix2pix算法的数据集制作

一、A、B合并代码&#xff08;此代码由官方提供&#xff09; import os import numpy as np import cv2 import argparseparser argparse.ArgumentParser(create image pairs) parser.add_argument(--fold_A, destfold_A, helpinput directory for image A, typestr, default…

ITIL帮助台怎样帮助企业建设IT服务?

大多数企业都是从邮件开始IT支持建设的&#xff0c;随着企业的规模扩大、服务请求的增长&#xff0c;服务质量不可避免出现了急剧的下降。IT支持团队进入消防员模式&#xff0c;他们只能奔波于解决请求&#xff0c;避免服务失败。没有ITIL所定义的流程体系&#xff0c;IT团队失…

实时同步!从MySQL到SelectDB的无缝数据迁移

随着数据分析在业务决策中变得日益重要&#xff0c;数据实时同步和分析成为企业提升竞争力的关键。MySQL 作为广泛使用的关系型数据库&#xff0c;其数据存储丰富&#xff0c;但无法满足大规模数据分析和高并发查询的需求。而 SelectDB 作为一款专为大数据分析设计的分布式数据…

leetcode121. 买卖股票的最佳时机

题目&#xff1a; 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易…

【前端】JQ实时显示当前日期、时间、星期

效果图 html <span id"time"></span> JS // 实时显示当前时间 $(document).ready(function () {function showTime() {var today new Date;var y today.getFullYear();var M today.getMonth() 1;var d today.getDate();var w today.getDay();va…

Django报错:SystemCheckError: System check identified some issues解决办法

今天练习django自定义标签时&#xff0c;一开始在APPbook中写了自定义标签book_tags.py 测试成功&#xff0c;之后新建了一个APPblogs&#xff0c;测试在blogs中创建模板使用自定义标签&#xff0c;于是直接把book/templatetags包直接赋值到blogs目录里。在页面里加载自定义标…

与敌人争利,懂得迂直之计

与敌人争利&#xff0c;懂迂直之计 【安志强趣讲《孙子兵法》第25讲】 【原文】 故不知诸侯之谋者&#xff0c;不能豫交&#xff1b;不知山林、险阻、沮泽之形者&#xff0c;不能行军&#xff1b;不用乡导者&#xff0c;不能得地利。 【注释】 豫交&#xff1a;豫&#xff0c;通…

<XILINX> AXI4-Lite(二) Slave接口时序分析

目录 01 axi4_lite_slave写事务代码分析 AWREADY时序控制代码分析 WREADY时序控制代码分析 AWADDR寄存时序代码分析 WDATA寄存时序代码分析 BVALID、BRESP时序控制代码分析 axi4_lite_slave 写事务时序总结 02 axi4_lite_slave读事务代码分析 ARREADY时序、ARADDR寄存控…

虫情监测仪的功能优势有哪些?

虫情监测仪是实时监测虫情的仪器&#xff0c;主要由诱虫装置、害虫灭活装置、落虫分散装置、收集装置、图像采集装置以及农业四情测报平台/智慧农业大数据平台组成&#xff0c;能够实时拍摄虫情照片&#xff0c;并将其上传至平台进行识别统计&#xff0c;以便对虫害的发生进行预…

问题杂谈(三十七)远程调试linux中的Tomcat

前言 之前调试过Docker里面的java程序&#xff0c;但还没试过直接调试tomcat里面的java程序&#xff0c;今儿个来试试 步骤 Tomcat 修改catlina脚本&#xff1a;vi catlina.sh&#xff08;bin目录下&#xff09;找到下面这句&#xff0c;将"localhost:8000"改为”…

FC-TDIO51 HONEYWELL 关于霍尼韦尔过程解决方案

FC-TDIO51 HONEYWELL 关于霍尼韦尔过程解决方案 霍尼韦尔过程解决方案(HPS)宣布推出一款文档和变更管理软件&#xff0c;该软件将帮助其客户的工业控制系统的完整性。Honeywell Trace用自动化解决方案取代了纸质记录和电子表格。通过提供复杂系统交互的单一集成视图&#xff0…

YOLO目标检测——人脸性别识别数据集下载分享

人脸性别识别数据集共同2300图片。在社交媒体分析、广告定向投放、零售业、安防系统以及健康和医疗领域等多个领域都具有广泛的应用潜力。通过准确识别人脸的性别&#xff0c;可以为这些领域提供更精准的数据分析和个性化的服务。 数据集点击下载&#xff1a;YOLO人脸性别识别数…

linux查看某一进程占用内存

1.top -p [pid]&#xff0c;Mem对应的是占用百分比&#xff0c;按q退出 2.cat /proc/[pid]/status,VmRSS对应的就是

openEuler自定制生成ISO

目录 1. 下载镜像2. 挂载镜像3. 安装制作发行版的工具4. 同步光盘文件到制作ISO的目录5. 拷贝已安装rpm6. 查找不存在的rpm&#xff0c;写入no_exist_rpms7. 下载no_exist_rpms.txt中的所有依赖包8. 修改 isolinux.cfg 文件9. 修改自动化安装配置文件10. 制作修改noraml文件11.…

SpringCloud(九)——RabbitMQ简单了解

文章目录 1. 同步通讯与异步通讯2. MQ 介绍3. RabbitMQ运行4. RabbitMQ 模型4.1 五种模型简介4.2 实现基本消息队列4.2.1 消息发布者4.2.2 消息订阅者 5. SpringAMQP5.1 基本队列5.2 工作队列5.3 广播5.4 路由5.5 主题 6. 消息转换器 1. 同步通讯与异步通讯 同步通讯 同步通讯就…

24.排序,插入排序,交换排序

目录 一. 插入排序 &#xff08;1&#xff09;直接插入排序 &#xff08;2&#xff09;折半插入排序 &#xff08;3&#xff09;希尔排序 二. 交换排序 &#xff08;1&#xff09;冒泡排序 &#xff08;2&#xff09;快速排序 排序&#xff1a;将一组杂乱无章的数据按一…

【iOS】Masonry的基本使用

文章目录 前言一、使用Masonry的原因二、约束的常识三、Masonry的简单使用四、Masonry的用例总结 前言 暑假安装了cocoapods&#xff0c;简单使用其调用了SVGKit&#xff0c;但是没有学习Masonry&#xff0c;特此总结博客记录Masonry的学习 一、使用Masonry的原因 Masonry是一…

Scrum敏捷开发工具:提高团队协作与交付效率

随着软件开发行业的不断发展和进步&#xff0c;Scrum敏捷开发工具逐渐成为了备受关注的话题。 Scrum是一种灵活且高效的项目管理方法&#xff0c;旨在提高团队协作和交付效率&#xff0c;使团队能够更快地响应变化和需求。 本文将深入探讨Scrum敏捷开发工具的基本概念、使用方…

YOLOv5、YOLOv7 注意力机制改进SEAM、MultiSEAM、TripletAttention

用于学习记录 文章目录 前言一、SEAM、MultiSEAM1.1 models/common.py1.2 models/yolo.py1.3 models/SEAM.yaml1.4 models/MultiSEAM.yaml1.5 SEAM 训练结果图1.6 MultiSEAM 训练结果图二、TripletAttention2.1 models/common.py2.2 models/yolo.py2.3 yolov7/cfg/training/Tri…

知识图谱(1)知识存储与检索

目录 Neo4j在win系统安装Neo4j基础语法知识图谱创建知识图谱查询知识图谱属性增减 python与neo4j Neo4j在win系统安装 图数据库&#xff08;graph database&#xff09;是一种特殊的数据库&#xff0c;用于存储丰富的关系数据&#xff0c;neo4j是目前最流行的图数据库&#xf…