算法通关村第十六关-白银挑战滑动窗口经典题目
大家好我是苏麟 , 今天带来滑动窗口经典的一些题目 .
我们继续来研究一些热门的、高频的滑动窗口问题
大纲
- 最长子串专题
- 无重复字符的最长子串
- 长度最小的子数组
- 盛最多水的容器
最长子串专题
无重复字符的最长子串
描述 :
给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。
题目 :
LeetCode 3. 无重复字符的最长子串 :
无重复字符的最长子串
分析 :
官方题解
解析 :
class Solution {public int lengthOfLongestSubstring(String s) {if(s == null || s.length() == 0){return 0;}HashMap<Character,Integer> map = new HashMap<>();int left = 0;int max = 0;for(int right = 0;right < s.length();right++){if(map.containsKey(s.charAt(right))){left = Math.max(left,map.get(s.charAt(right)) + 1);}map.put(s.charAt(right),right);max = Math.max(max,right - left + 1);}return max;}
}
长度最小的子数组
描述 :
给定一个含有 n 个正整数的数组和一个正整数 target 。
找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。
题目 :
LeetCode 209. 长度最小的子数组 :
长度最小的子数组
分析 :
这题直接用双指针就完事了 , 没什么好说的 .
当然用队列啊 也是可以的 .
解析 :
class Solution {public int minSubArrayLen(int target, int[] nums) {int length = nums.length - 1;int left = 0;int right = 0;int res = 0;int min = Integer.MAX_VALUE;while(right <= length){res += nums[right++];while(res >= target){res -= nums[left++];min = Math.min(min, right - left + 1);}}return min == Integer.MAX_VALUE ? 0 : min;}
}
盛最多水的容器
描述 :
给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i])
找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。
返回容器可以储存的最大水量。
说明:你不能倾斜容器。
题目 :
LeetCode 11. 盛最多水的容器 :
盛最多水的容器
分析 :
本题看似复杂,但其实简单的很。设两指针i,j,指向的水槽板高度分别为 h[i],h[j],此状态下水槽面积为S(i,j)。由于可容纳水的高度由两板中的 短板 决定,因此可得如下面积公式:
s(i,j)=min(h[i],h[j]) x ( j - i )
在每个状态下,无论长板或短板向中间收窄一格,都会导致水槽底边宽度-1 变短:
- 若向内移动短板,水槽的短板min(h[i],h[j]) 可能变大,因此下个水槽的面积可能增大
- 若向内移动长板,水槽的短板min(h[i],h[j]) 不变或变小,因此下个水槽的面积一定变小。
因此,只要初始化双指针分列水槽左右两端,循环每轮将短板向内移动一格,并更新面积最大值,直到两指针相遇时跳出;即可获得最大面积。
解析 :
class Solution {public int maxArea(int[] height) {if(height.length < 2){return 0;}int res = 0;int left = 0;int right = height.length - 1;while(left < right){res = height[left] < height[right] ?Math.max(res,(right - left) * height[left++]) :Math.max(res,(right - left) * height[right--]);} return res;}
}
这期就到这里 , 下期见!
相关文章:

算法通关村第十六关-白银挑战滑动窗口经典题目
大家好我是苏麟 , 今天带来滑动窗口经典的一些题目 . 我们继续来研究一些热门的、高频的滑动窗口问题 大纲 最长子串专题无重复字符的最长子串 长度最小的子数组盛最多水的容器 最长子串专题 无重复字符的最长子串 描述 : 给定一个字符串 s ,请你找出其中不含有重…...

springBoot整合task
springBoot整合task 文章目录 springBoot整合task开开关设置任务,并设置执行周期定时任务的相关配置 开开关 设置任务,并设置执行周期 Component public class MyBean {Scheduled(cron "0/1 * * * * ?")public void print(){System.out.prin…...

逻辑漏洞测试靶场实验
任务一: 突破功能限制漏洞,要求突破查询按钮disabled限制,获取编号:110010的查询内容(弹框中的flag) 任务二:用户信息泄露漏洞,通过回显信息,以暴力破解法方式猜测系统中…...

【电机控制】PMSM无感foc控制(六)相电流检测及重构 — 双电阻采样、三电阻采样
0. 前言 目前,永磁同步电机的电流信号采样方法应用较多的是分流电阻采样,包括单电阻、双电阻以及三电阻采样法。其中,单电阻采样上一章节已经讲解,这章讲双电阻以及三电阻电流采样法。 1. 双电阻采样 1.1 双电阻采样原理 双电阻采…...
Boost:多进程间消息队列通信
Boost封装了消息队列,以便于多进程间传递消息: 1.创建消息队列: #include <boost/interprocess/ipc/message_queue.hpp> message_queue mq (create_only/open_only/create_or_open ,"message_queue" //消息队列的名字 ,100 …...

ELK配置记录
1. filebeat.yml配置 启动命令: ./filebeat -e -c filebeat.yml # 输入 filebeat.inputs: - type: logenabled: truepaths:- /soft/log/base.*#跨行日志正则,从有时间的开始,到下一个时间之前结束multiline.pattern: ^\[[0-9]{4}-[0-9]{2}…...
EtherCAT主站SOEM -- 7 -- SOEM之ethercatmain.h/c文件解析
EtherCAT主站SOEM -- 7 -- SOEM之ethercatmain.h/c文件解析 一 ethercatmain.h/c文件功能预览:1.1 ethercatmain里面的结构体1.2 ethercatmain里面的函数二 ethercatmain.h/c 文件的主要函数的作用:2.1 结构体介绍2.1.1 `ec_adaptert` 结构体:2.1.2 `ec_fmmut` 结构体:2.1.3 …...

Linux下Python调用C语言
一:Python调用C语言场景 1,已经写好的C语言代码,不容易用Python实现,想直接通过Python调用写好的C语言代码 2,C比Python快(只是从语言层面,不能绝对说C程序就是比Python快) 3&…...
SQL Server对象类型(8)——4.8.约束(Constraint)
4.8. 约束(Constraint) 4.8.1. 约束概念 与Oracle中的一样,SQL Server中,约束是虚的、被定义的数据库对象,其本身并不存储数据,其通过一些内置或用户自定义逻辑来实现对表中数据的检查和限制,以使这些表数据符合某个或某些规则或标准,从而实现数据的规则化、标准化和…...
苍穹外卖--导出运营数据Excel报表
导出运营数据Excel报表 需求分析和设计 产品原型 在数据统计页面,有一个数据导出的按钮,点击该按钮时,其实就会下载一个文件。这个文件实际上是一个Excel形式的文件,文件中主要包含最近30日运营相关的数据。表格的形式已经固定…...

cocos creator-碰撞检测
碰撞检测文档 刚体自行选择,刚体正常设置分组、tag,tag用于区分是哪个物体被碰撞了 正常在一个node下挂载脚本就行 注意:Builtin 2D 物理模块只会发送 BEGIN_CONTACT 和 END_CONTACT 回调消息。ccclass(TestContactCallBack) export class …...

算法通关第十七关黄金挑战——透析跳跃问题
大家好,我是怒码少年小码。 本篇是贪心思想的跳跃问题专题,跳跃问题出现的频率很高。 跳跃游戏 LeetCode 55:给你一个非负整数数组 nums ,你最初位于数组的 第一个下标。数组中的每个元素代表你在该位置可以跳跃的最大长度。 …...

GPT带我学Openpyxl操作Excel
注:以下文字大部分文字和代码由GPT生成 一、openpyxl详细介绍 Openpyxl是一个用于读取和编写Excel 2010 xlsx/xlsm/xltx/xltm文件的Python库。它允许您使用Python操作Excel文件,包括创建新的工作簿、读取和修改现有工作簿中的数据、设置单元格格式以及编…...

图扑参展高交会-全球清洁能源创新博览会
“相聚鹏城深圳,共享能源盛宴” 第二十五届中国国际高新技术成果交易会(简称“高交会”)于 11 月 15-18 日在深圳盛大开幕。高交会由商务部、科学技术部、工业和信息化部、国家发展改革委、农业农村部、国家知识产权局、中国科学院、中国工程院和深圳市人民政府共同…...
vue v-permission权限指令
控制页面及按钮的显示隐藏 src/directive/permission/index.js import permission from ./permissionconst install function(Vue) {Vue.directive(permission, permission) }if (window.Vue) {window[permission] permissionVue.use(install); // eslint-disable-line }per…...

ER图是什么,怎么画?
ER图(Entity-Relationship Diagram)是一种用于描述实体间关系的图形化表示方法。它主要用于数据库设计,可以清晰地展示实体、属性和实体间的联系。常用的ER图类型包括: 实体-关系模型(Entity-Relationship Model&…...

基于51单片机的十字路口交通灯_5s黄灯倒计时闪烁
基于51单片机十字路口交通灯_5s黄灯闪烁 (程序仿真仿真视频) 仿真:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:J006 功能要求 交通灯运行状态: (1&…...
JavaWeb | JSP内置对象
目录: 1.认识JSP内置对象2.JSP内置对象的特点3.九大内置对象3.1 out对象的作用向 “客户端” 输出各种数据内容对 “服务器” 上的输出缓冲区进行管理 3.2 request对象的作用能够获取客户端的基本信息 3.3 response对象的作用利用response对象进行 “重定向”利用re…...

如何保持高能量
精力管理 精力管理对于平衡多项任务和保持热情至关重要。 通过自我积极反馈循环系统培养积极的内心声音。 培养仪式和习惯来控制内心的声音并保持能量。 学习语言带来正能量和宝贵的技能 保持高能量需要自我赋权和体力充电。 经常锻炼有很多好处,包括改善健康…...
Oracle研学-基础操作
学自B站黑马程序员笔记 一 创建表空间(创建数据文件) 创建表空间同时会创建一个数据文件(下面5行应该是一句话),表空间在PLSQL的Object的tablespace中可以看到 create tablespace waterboss //创建表空间 datafile c:\waterboss.dbf //创建表空间对应的…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...
Webpack性能优化:构建速度与体积优化策略
一、构建速度优化 1、升级Webpack和Node.js 优化效果:Webpack 4比Webpack 3构建时间降低60%-98%。原因: V8引擎优化(for of替代forEach、Map/Set替代Object)。默认使用更快的md4哈希算法。AST直接从Loa…...
LRU 缓存机制详解与实现(Java版) + 力扣解决
📌 LRU 缓存机制详解与实现(Java版) 一、📖 问题背景 在日常开发中,我们经常会使用 缓存(Cache) 来提升性能。但由于内存有限,缓存不可能无限增长,于是需要策略决定&am…...