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

刷LeetCode

文章目录

      • 滑动窗口算法
        • 1 涉及知识点 :unordered_set 容器
        • 2 参数详情
        • 3 例题

滑动窗口算法

  • 滑动的窗口,每次记录下窗口的状态,再找出符合条件的窗口
  • 使用滑动窗口减少时间复杂度

1 涉及知识点 :unordered_set 容器

说明:unordered_set容器与set的区别就是set容器会自行对存储的数据排序,而 unordered_set 容器不会。

  • 不再以键值的形式存储数据,而是直接存储数据的值
  • 容器内部存储的各个元素的值都不相等,且不能被修改
  • 不会对容器内部的元素进行排序

2 参数详情

unordered_set<int> lookup;//构造函数
lookup.find(s[i]) //查询元素是否在结合内
lookup.end() //end()函数是最后一个元素的下一个位置
lookup.erase(s[left]);//删除元素
lookup.insert(s[i]) //插入元素

3 例题

题目描述:无重复字符的最长子串

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

解题思路: 利用滑动窗口的思想,也就是定义一个lookup窗口,让窗口一步一步滑动遍历输入的字符串。划过的字符与刚刚输入的字符比较,若是不相等继续滑动,滑出来的长度就是不含有重复字符的最长字串的长度。若是相等,就是下次再比较就从相等的字符的下一个字符开始。
注意:若是空字符串,直接返回0

参考代码:c++

class Solution {
public:int lengthOfLongestSubstring(string s) {if (s.size()==0)return 0;int maxlong=0;int left=0;unordered_set <int> lookup;for(int i=0;i<s.size();i++){while(lookup.find(s[i])!=lookup.end()){lookup.erase(s[left]);left++;}lookup.insert(s[i]);maxlong=max(maxlong,i-left+1);}return maxlong;}
};

相关文章:

刷LeetCode

文章目录滑动窗口算法1 涉及知识点 &#xff1a;unordered_set 容器2 参数详情3 例题滑动窗口算法 滑动的窗口&#xff0c;每次记录下窗口的状态&#xff0c;再找出符合条件的窗口使用滑动窗口减少时间复杂度 1 涉及知识点 &#xff1a;unordered_set 容器 说明&#xff1a;…...

Spring 大白话系列:工厂

Spring 大白话系列&#xff1a;工厂 “工厂模式&#xff0c;大家都很熟悉了。说到底&#xff0c;就是解除创建对象和使用对象之间的耦合。这东西没啥啊。” 教室里&#xff0c;老师傅听到小明在嘀嘀咕咕的。老师走过去问&#xff1a; “有什么问题呢小明同学&#xff1f;” 小…...

喜讯!华秋电子荣获第六届“蓝点奖”十佳分销商奖

2 月 25 日&#xff0c;由深圳市电子商会主办的2023 中国电子信息产业创新发展交流大会暨第六届蓝点奖颁奖盛典在深圳隆重举行。 图&#xff1a;华秋商城渠道总监杨阳&#xff08;右三&#xff09; 深圳市电子商会连续六年举办“蓝点奖”评选活动&#xff0c;旨在表彰对电子信…...

Linux概述

1&#xff1a;Linux概述1.1&#xff1a;操作系统常见操作系统有&#xff1a;Windows、MacOS、Linux。名称描述Windows微软公司研发的收费操作系统。分为两类&#xff1a;用户操作系统、Server操作系统。用户操作系统&#xff1a;win 95、win 98、win NT、win Me、win xp、vista…...

中级嵌入式系统设计师2015下半年上午试题及答案解析

中级嵌入式系统设计师2015下半年上午试题 单项选择题 1、CPU是在______结束时响应DMA请求的。 A.一条指令执行 B.一段程序 C.一个时钟周期 D.一个总线周期 2、虚拟存储体系由______两级存储器构成。 A.主存-辅存 B.寄存器-Cache C.寄存器-主存...

华为OD机试模拟题 用 C++ 实现 - 删除指定目录(2023.Q1)

最近更新的博客 【华为OD机试模拟题】用 C++ 实现 - 最多获得的短信条数(2023.Q1)) 文章目录 最近更新的博客使用说明删除指定目录题目输入输出示例一输入输出说明Code使用说明 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。 华为…...

【正点原子FPGA连载】第二十章AXI4接口之DDR读写实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南

1&#xff09;实验平台&#xff1a;正点原子MPSoC开发板 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id692450874670 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html 第二十章AXI4接口…...

超出认知的数据压缩 用1-bit数据来表示32-bit的梯度 语音识别分布式机器学习 梯度压缩 论文精读

说明 介绍1−bit1-bit1−bit论文内容。 原文链接&#xff1a;1-bit stochastic gradient descent and its application to data-parallel distributed training of speech DNNs | Semantic Scholar ABS 实验证明在分布式机器学习的过程中能够通过将同步所传递的梯度进行量化…...

深度剖析指针(上)——“C”

各位CSDN的uu们你们好呀&#xff0c;今天&#xff0c;小雅兰的内容是指针噢&#xff0c;在学习C语言的过程中&#xff0c;指针算是一个比较重要的内容&#xff0c;当然&#xff0c;难度也是比较大的&#xff0c;那么现在就让小雅兰来带大家进入指针的世界吧 字符指针 数组指针…...

学习 Python 之 Pygame 开发魂斗罗(六)

学习 Python 之 Pygame 开发魂斗罗&#xff08;六&#xff09;继续编写魂斗罗1. 创建碰撞类2. 给地图添加碰撞体3. 让人物可以掉下去4. 实现人物向下跳跃5. 完整的代码继续编写魂斗罗 在上次的博客学习 Python 之 Pygame 开发魂斗罗&#xff08;五&#xff09;中&#xff0c;我…...

LeetCode题解:1238. 循环码排列,归纳法,详细注释

原题链接&#xff1a; https://leetcode.cn/problems/circular-permutation-in-binary-representation/ 前置条件&#xff1a; 在解题之前&#xff0c;请先一定要阅读89.格雷编码的题解格雷编码可以满足题目的条件“p[i] 和 p[i1] 的二进制表示形式只有一位不同”&#xff0c…...

全新后门文件Nev-3.exe分析

一、 样本发现&#xff1a; 蜜罐 二、 内容简介&#xff1a; 通过公司的蜜罐告警发现一个Nev-3.exe可执行文件文件&#xff0c;对该样本文件进行分析发现&#xff0c;该可执行程序执行后会从远程服务器http://194.146.84.2:4395/下载一个名为“3”的压缩包&#xff0c;解压后…...

线性回归系数解释

线性回归系数解释线性回归系数1、R2R^2R2&#xff08;R方&#xff0c;R-Square&#xff09;2、Adj−R2Adj-R^2Adj−R2&#xff08;调整后的 R 方&#xff09;3、标准误差4、FFF 值5、FFF 显著度6、置信区间7、PPP 值线性回归系数 回归模型得到后会有多个系数&#xff0c;这些系…...

22.2.27打卡 Codeforces Round #852 (Div. 2) A~D

A Yet Another Promotion 题面翻译 题目描述 共 ttt 组数据&#xff0c;每组数据中&#xff0c;你需要买 nnn 公斤苹果&#xff0c;第一天单价为 aaa &#xff0c;但每买 mmm 公斤赠送一公斤&#xff1b;第二天单价为 bbb 。求最小花费。 输入输出格式 第一行一个正整数 …...

如何查看Spring Boot各版本的变化

目录 1.版本 2.基础特性和使用 3.新增特性和Bug修复 1.版本 打开Spring官网&#xff0c;点进Spring Boot项目我们会发现在不同版本后面会跟着不同的标签&#xff1a; 这些标签对应不同的版本&#xff0c;其意思如下&#xff1a; GA正式版本&#xff0c;通常意味着该版本已…...

程序员是否要加入创业公司?

我从1月份入职到2月份离职&#xff0c;历时一个半月。短暂的体验了一段创业生活&#xff0c;更准确的说是一段“待在”创业团队的生活&#xff0c;因为我发现创业本身跟我关系不大。一个半月的就业经历&#xff0c;对任何人来说都不是一个好选择&#xff0c;当然也不是我所期望…...

2023软件测试工程师全新技术栈,吃透这些,起薪就是25k~

相信每个准备软件测试面试的同学&#xff0c;不管你是大学刚毕业&#xff0c;满心憧憬着进入公司实习、非计算机行业转行软件测试、自学测试就业还是培训后就业&#xff0c;都会面临着众多的疑问和不解&#xff0c;那就是该怎么走出着第一步&#xff0c;今天本文一次性告诉你&a…...

【ChatGPT情商大考验】ChatGPT教我谈恋爱

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️&#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…...

C++类内存结构模型

内存分区 内存全局数据区&#xff0c;代码区&#xff0c;栈区&#xff0c;堆区。 定义一个类 类的成员函数被放在代码区 类的静态成员变量被放在全局数据区&#xff08;不占用类的存储空间&#xff09; 非静态成员在类的实例内&#xff0c;实例在栈区或者堆区 虚函数指针&…...

HTML#4超链接标签,列表标签,表格标签和布局标签

一. 超链接标签介绍<a> 定义超链接,用于连接到另一个资源herf: 指定访问资源的URLtarget: 指定打开资源的方式代码<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>超链接标签</title> <…...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展&#xff1a;显示创建时间8. 功能扩展&#xff1a;记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

Cursor实现用excel数据填充word模版的方法

cursor主页&#xff1a;https://www.cursor.com/ 任务目标&#xff1a;把excel格式的数据里的单元格&#xff0c;按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例&#xff0c;…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议&#xff08;EPSFD 2025&#xff09;将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会&#xff0c;EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?

在建筑行业&#xff0c;项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升&#xff0c;传统的管理模式已经难以满足现代工程的需求。过去&#xff0c;许多企业依赖手工记录、口头沟通和分散的信息管理&#xff0c;导致效率低下、成本失控、风险频发。例如&#…...

Opencv中的addweighted函数

一.addweighted函数作用 addweighted&#xff08;&#xff09;是OpenCV库中用于图像处理的函数&#xff0c;主要功能是将两个输入图像&#xff08;尺寸和类型相同&#xff09;按照指定的权重进行加权叠加&#xff08;图像融合&#xff09;&#xff0c;并添加一个标量值&#x…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1)&#xff1a;从基础到实战的深度解析-CSDN博客&#xff0c;但实际面试中&#xff0c;企业更关注候选人对复杂场景的应对能力&#xff08;如多设备并发扫描、低功耗与高发现率的平衡&#xff09;和前沿技术的…...

Springboot社区养老保险系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;社区养老保险系统小程序被用户普遍使用&#xff0c;为方…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的

修改bug思路&#xff1a; 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑&#xff1a;async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...