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

【LeetCode基础算法】滑动窗口与双指针

定长滑动窗口

总结:入-更新-出。
入:下标为 i 的元素进入窗口,更新相关统计量。如果 i<k−1 则重复第一步。
更新:更新答案。一般是更新最大值/最小值。
出:下标为 i−k+1 的元素离开窗口,更新相关统计量。

# 1456. 定长子串中元音的最大数目
# 算是标准的定长滑动窗口模板了
class Solution:def maxVowels(self, s: str, k: int) -> int:ans = 0num_vowels = 0for right, c in enumerate(s):if c in 'aeiou': num_vowels += 1  # 第一步:入if right < k-1:  # 窗口长度没达到k时,就重复第一步continueans = max(ans, num_vowels)  # 更新最值if s[right-k+1] in 'aeiou':  # 第三步:出num_vowels -= 1return ans

2025-4-14
1456. 定长子串中元音的最大数目 1263
643. 子数组最大平均数 I
1343. 大小为 K 且平均值大于等于阈值的子数组数目 1317
2090. 半径为 k 的子数组平均值 1358

2025-4-15
2379. 得到 K 个黑块的最少涂色次数 1360
2841. 几乎唯一子数组的最大和 1546
2461. 长度为 K 子数组中的最大和 1553
1423. 可获得的最大点数 1574(逆向思维,计算长度为n-k的滑动窗口)

2025-4-16进阶
3439. 重新安排会议得到最多空余时间 I 1729
2134. 最少交换次数来组合所有的 1 II 1748
1297. 子串的最大出现次数 1748
2653. 滑动子数组的美丽值 1786

不定长滑动窗口

相关文章:

【LeetCode基础算法】滑动窗口与双指针

定长滑动窗口 总结&#xff1a;入-更新-出。 入&#xff1a;下标为 i 的元素进入窗口&#xff0c;更新相关统计量。如果 i<k−1 则重复第一步。 更新&#xff1a;更新答案。一般是更新最大值/最小值。 出&#xff1a;下标为 i−k1 的元素离开窗口&#xff0c;更新相关统计量…...

数据结构之BFS广度优先算法(腐烂的苹果)

队列这个数据结构在很多场景下都有使用&#xff0c;比如在实现二叉树的层序遍历&#xff0c;floodfill问题(等等未完成)中&#xff0c;都需要借助队列的先进先出特性&#xff0c;下面给出这几个问题的解法 经典的二叉树的层序遍历 算法图示&#xff0c;以下图所示的二叉树为例…...

道可云人工智能每日资讯|首届世界人工智能电影节在法国尼斯举行

道可云元宇宙每日简报&#xff08;2025年4月15日&#xff09;讯&#xff0c;今日元宇宙新鲜事有&#xff1a; 杭州《西湖区打造元宇宙产业高地的扶持意见》发布 杭州西湖区人民政府印发《西湖区打造元宇宙产业高地的扶持意见》。该意见已于4月4日正式施行&#xff0c;有效期至…...

火车头采集动态加载Ajax数据(无分页瀑布流网站)

为了先填充好数据在上线&#xff0c;在本地搭建了一个网站&#xff0c;并用火车头采集数据填充到里面。 开始很上手&#xff0c;因为找的网站的分类中是有分页的。很快捷的找到页面标识。 但是问题来了&#xff0c;如今很多网站都是采用的Ajax加载数据&#xff0c;根本没有分…...

Android Jetpack是什么与原生android 有什么区别

Android Jetpack是什么 Android Jetpack是Google推出的一套开发组件工具集,旨在帮助开发者更高效地构建高质量的Android应用。它包含多个库和工具,被分为架构、用户界面、行为和基础四大类。以下是一些Android Jetpack的示例: 架构组件 ViewModel:用于以生命周期的方式管理…...

Android Retrofit 框架适配器模块深入源码分析(五)

Android Retrofit 框架适配器模块深入源码分析 一、引言 在 Android 开发中&#xff0c;网络请求是一个常见且重要的功能。Retrofit 作为一个强大的网络请求框架&#xff0c;以其简洁的 API 和高度的可定制性受到了广泛的欢迎。适配器模块&#xff08;CallAdapter&#xff09…...

Node.js模块化与npm

目录 一、模块化简介 二、CommonJS 规范 1. 基本语法 2. 导出模块 3. 导入模块 三、ECMAScript 标准&#xff08;ESM&#xff09; 1. 启用 ESM 一、默认导出与导入 1. 基本语法 2. 默认导出&#xff08;每个模块仅一个&#xff09; 3. 默认导入 二、命名导出与导入…...

nginx中的代理缓存

1.缓存存放路径 对key取哈希值之后&#xff0c;设置cache内容&#xff0c;然后得到的哈希值的倒数第一位作为第一个子目录&#xff0c;倒数第三位和倒数第二位组成的字符串作为第二个子目录&#xff0c;如图。 proxy_cache_path /xxxx/ levels1:2 2.文件名哈希值...

【前端vue生成二维码和条形码——MQ】

前端vue生成二维码和条形码——MQ 前端vue生成二维码和条形码——MQ一、安装所需要的库1、安装qrcode2、安装jsbarcode 二、使用步骤1、二维码生成2、条形码生成 至此&#xff0c;大功告成&#xff01; 前端vue生成二维码和条形码——MQ 一、安装所需要的库 1、安装qrcode 1…...

flutter 桌面应用之窗口自定义

在开发桌面软件的时候我们经常需要配置软件的窗口的大小以及位置 我们有两个框架选择:window_manager和bitsdojo_window 对比bitsdojo_window 特性bitsdojo_windowwindow_manager自定义标题栏✅ 支持❌ 不支持控制窗口行为&#xff08;大小/位置&#xff09;✅&#xff08;基本…...

华为OD机试真题——MELON的难题(2025A卷:200分)Java/python/JavaScript/C++/C语言/GO六种最佳实现

2025 A卷 200分 题型 本文涵盖详细的问题分析、解题思路、代码实现、代码详解、测试用例以及综合分析&#xff1b; 并提供Java、python、JavaScript、C、C语言、GO六种语言的最佳实现方式&#xff01; 2025华为OD真题目录全流程解析/备考攻略/经验分享 华为OD机试真题《MELON的…...

【C++】深入浅出之继承

目录 继承的概念及定义继承的定义继承方式和访问限定符protected与private的区别 默认继承方式继承类模板基类和派生类对象赋值兼容转换继承中的作⽤域(隐藏关系)相关面试题⭐ 派生类的默认成员函数⭐构造函数拷贝构造赋值重载析构函数 继承与友元继承与静态成员继承的方式菱形…...

在 macOS 上切换默认 Java 版本

下载javasdk 打开android studio -> setting -> build.execution,dep -> build tools -> gradle -> Gradle JDK -> download JDK… 点击下载&#xff0c;就下载到了 ~/Library/Java/JavaVirtualMachines/ 安装 jenv brew install jenv将 jenv 集成到 Shell …...

【安卓开发】【Android Studio】Menu(菜单栏)的使用及常见问题

一、菜单栏选项 在项目中添加顶部菜单栏的方法&#xff1a; 在res目录下新建menu文件夹&#xff0c;在该文件夹下新建用于菜单栏的xml文件&#xff1a; 举例说明菜单栏的写法&#xff0c;只添加一个选项元素&#xff1a; <?xml version"1.0" encoding"ut…...

2025.04.17【Stacked area】| 生信数据可视化:堆叠区域图深度解析

文章目录 生信数据可视化&#xff1a;堆叠区域图深度解析堆叠面积图简介为什么使用堆叠面积图如何使用R语言创建堆叠面积图安装和加载ggplot2包创建堆叠面积图的基本步骤示例代码 解读堆叠面积图堆叠面积图的局限性实际应用案例示例&#xff1a;基因表达量随时间变化 结论 生信…...

【NLP】 22. NLP 现代教程:Transformer的训练与应用全景解读

&#x1f9e0; NLP 现代教程&#xff1a;Transformer的训练与应用全景解读 一、Transformer的使用方式&#xff08;Training and Use&#xff09; 如何使用Transformer模型&#xff1f; Transformer 模型最初的使用方式有两种主要方向&#xff1a; 类似 RNN 编码-解码器的架…...

jenkins凭据管理(配置github密钥)

凭据分类 Jenkins可以保存下面几种凭证&#xff1a; Secret text&#xff1a;例如 API Token&#xff08;例如GitHub的个人access token&#xff09;。Username with password&#xff1a;指的是登录GitHub的用户名和密码&#xff0c;可以作为单独的组件处理&#xff0c;也可以…...

数据结构|排序算法(三)选择排序 堆排序 归并排序

一、选择排序 1.算法思想 选择排序&#xff08;Selection Sort&#xff09;是一种简单直观的排序算法&#xff0c;其基本思想是&#xff1a;每次都从待排序部分中选出最小的一个数据和待排序的第一个数据交换。 将待排序序列分为已排序和未排序两部分&#xff0c;初始时已排…...

MAC Mini M4 上测试Detectron2 图像识别库

断断续续地做图像识别的应用&#xff0c;使用过各种图像识别算法&#xff0c;一开始使用openCV 做教室学生计数的程序。以后又使用YOLO 做医学伤口检测程序。最近&#xff0c;开始使用meta 公司的Detectron2.打算做OCR 文档结构分析 Detectron2 的开发者是 Meta 的 Facebook AI…...

OpenCv高阶(四)——角点检测

一、角点检测 在计算机视觉中&#xff0c;角点检测是识别图像中局部区域&#xff08;角点&#xff09;的关键技术&#xff0c;这些区域通常是两条或多条边缘的交点&#xff0c;具有丰富的结构信息&#xff0c;常用于图像匹配、跟踪、三维重建等任务。 Harris角点检测算法是一…...

TOA与AOA联合定位的高精度算法,三维、4个基站的情况,MATLAB例程,附完整代码

本代码实现了三维空间内目标的高精度定位,结合到达角(AOA) 和到达时间(TOA) 两种测量方法,通过4个基站的协同观测,利用最小二乘法解算目标位置。代码支持噪声模拟、误差分析及三维可视化,适用于无人机导航、室内定位等场景。订阅专栏后可获得完整代码 文章目录 运行结果…...

如何在 Ubuntu 22.04 上安装、配置、使用 Nginx

如何在 Ubuntu 22.04 上安装、配置、使用 Nginx&#xff1f;-阿里云开发者社区 更新应用 sudo apt updatesudo apt upgrade检查必要依赖并安装 sudo apt install -y curl gnupg2 ca-certificates lsb-release安装nginx sudo apt install -y nginx# 启动nginx sudo systemct…...

揭秘大数据 | 23、软件定义网络

软件定义网络将网络的边缘从硬件交换机推进到了服务器里面&#xff0c;将服务器和虚拟机的所有部署、管理的职能从原来的系统管理员网络管理员的模式变成了纯系统管理员的模式&#xff0c;让服务器的业务部署变得简单&#xff0c;不再依赖于形态和功能各异的硬件交换机&#xf…...

Elastic 9.0/8.18:BBQ、EDOT 和 LLM 可观察性、攻击发现、自动导入以及 ES|QL JOIN

作者&#xff1a;来自 Elastic Brian Bergholm 今天&#xff0c;我们很高兴地宣布 Elastic 9.0 和 8.18 的正式发布&#xff01; 如果你觉得 8.x 版本系列已经很令人印象深刻&#xff0c;包含了 ANN、TSDB、ELSER、ES|QL、LTR、BBQ、logsdb 索引模式等功能&#xff0c;那你一定…...

当 AI 有了 “万能插头” 和 “通用语言”:MCP 与 A2A 如何重构智能体生态

目录 一、MCP&#xff1a;让 AI 拥有 “万能工具插头” 1.1 从 “手工对接” 到 “即插即用” 1.2 架构解密&#xff1a;AI 如何 “指挥” 工具干活 1.3 安全优势&#xff1a;数据不出门&#xff0c;操作可追溯 二、A2A&#xff1a;让智能体学会 “跨语言协作” 2.1 从 “…...

中间件--ClickHouse-3--列式存储和行式存储理解

在数据库存储中&#xff0c;列式存储&#xff08;Columnar Storage&#xff09;与行式存储&#xff08;Row-based Storage&#xff09;是两种不同的数据组织方式&#xff0c;它们各自适用于不同类型的应用场景。 1、行式存储&#xff08;MySQL&#xff09; 存储方式&#xff…...

【golang/jsonrpc】go-ethereum中json rpc初步使用(websocket版本)

说在前面 操作系统&#xff1a;win11 wsl2go-ethereum版本&#xff1a;1.15.8 关于json-rpc 官网 server 定义方法type CalculatorService struct{}func (s *CalculatorService) Add(a, b int) int {return a b }func (s *CalculatorService) Div(a, b int) (int, error) {…...

逻辑回归 (Logistic Regression)

文章目录 逻辑回归 (Logistic Regression)问题的引出Sigmoid function逻辑回归的解释决策边界 (Decision boundary)逻辑回归的代价函数机器学习中代价函数的设计1. 代价函数的来源&#xff08;1&#xff09;从概率模型推导而来&#xff08;统计学习视角&#xff09;&#xff08…...

燕山大学计算机网络之Java实现TCP数据包结构设计与收发

觉得博主写的好&#xff0c;给博主点点免费的关注吧&#xff01; 目录 摘要.................................................................................................................... 4 前言.............................................................…...

如何使用SpringApplicationRunListener在Spring Boot 应用的不同生命周期阶段插入自定义逻辑

目录 一、引言二、核心方法概述三、加载机制四、使用场景五、扩展 - 如何在测试的不同阶段插入逻辑5.1 TestExecutionListener & AbstractTestExecutionListener5.1.1 主要功能5.1.2 生命周期方法 5.2 如何集成TestExecutionListener5.3 总结 一、引言 SpringApplicationR…...