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

Peter算法小课堂—蠕动区间

蠕动区间

蠕动区间(尺取法、双游标)是一个经典的优化算法。

我们以毛毛虫🐛举例说明

具体的,我们看题目

例题

最小区间

 这一题,我们用暴力法,复杂度O(N^2)

先给出暴力法代码

int ans=n+1;
for(int tail=0;tail<n;tail++){int sum=0;for(int head=tail;head<n;head++){sum+=x[head];if(sum>=m){ans=min(ans,head+1-tail);break;}}
}
cout<<ans<<endl;

 我们看一下蠕动区间怎么写

上面有注释,大家看不明白就私信哦

收集三原色

这道题更难一点……

数据结构

string x[N];
map<string,int> cnt;
set<string> rgb;
rgb.insert("red");
rgb.insert("green");
rgb.insert("blue");

主体部分

int sum=0,ans=n+1;
int tail=0,head=0;
while(1){while(head<n&&sum<3){string color=x[head++];if(!rgb.count(color)) continue;++cnt[color];if(cnt[color]==1) sum++;}if(sum<3) break;ans=min(ans,head-tail);string color=x[tail++];if(!rgb.count(color)) continue;--cnt[color];if(cnt[color]==0) sum--;
}
cout<<ans<<endl;

希望这些对大家有用,三联,必回 

相关文章:

Peter算法小课堂—蠕动区间

蠕动区间 蠕动区间&#xff08;尺取法、双游标&#xff09;是一个经典的优化算法。 我们以毛毛虫&#x1f41b;举例说明 具体的&#xff0c;我们看题目 例题 最小区间 这一题&#xff0c;我们用暴力法&#xff0c;复杂度O(N^2) 先给出暴力法代码 int ansn1; for(int tail…...

Vant和ElementPlus在vue的hash模式的路由下路由离开拦截使用Dialog和MessageBox失效

问题复现 ElementPlus&#xff1a;当点击返回或者地址栏回退时&#xff0c;MessageBox无效 <template><div>Element Plus Dialog 路由离开拦截测试</div><el-button type"primary" click"$router.back()">返回</el-button>…...

上海市通过区块链技术攻关 构建数字经济可信安全技术底座

日前&#xff0c;上海市印发《上海区块链关键技术攻关专项行动方案&#xff08;2023—2025年&#xff09;》&#xff08;以下简称《行动方案》&#xff09;&#xff0c;提出到2025年&#xff0c;在区块链体系安全、密码算法等基础理论以及区块链专用处理器、智能合约、跨链、新…...

Java 面试题

昨天面试了两个Java开发程序员&#xff0c;问了一些问题&#xff0c;回答的不是很好&#xff0c;看看大家的回答如何&#xff0c;可以在评论区回复&#xff0c;测试下自己的水平。 A程序员&#xff1a; 1. 自我介绍一下&#xff1b; 2. 企业级和互联网行业都有那些项目经验,简…...

layui 表格 展开

一、表格嵌套表格&#xff08;手风琴打开&#xff09; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>设备上下线统计</title><script type"text/javascript" src"../../../l…...

[尚硅谷React笔记]——第4章 React ajax

目录&#xff1a; 脚手架配置代理_方法一 server1.js开启服务器server1:App.js解决跨域问题&#xff1a;脚手架配置代理_方法二 ​​​​​​​server2.js开启服务器server2第一步&#xff1a;创建代理配置文件编写setupProxy.js配置具体代理规则&#xff1a;App.js运行结果&a…...

Richard Stallman 正在与癌症作战

导读为了纪念 GNU 项目成立 40 周年&#xff0c;自由软件基金会&#xff08;FSF&#xff09;已计划在 10 月 1 日&#xff08;即GNU 40&#xff09;为家庭、学生以及美国的其他人群组织一场黑客马拉松活动。 活动之前&#xff0c;GNU 项目于 9 月 27 日迎来了 40 岁生日&#…...

MathType7.4最新免费版(公式编辑器)下载安装包附安装教程

MathType是一款专业的数学公式编辑器&#xff0c;理科生专用的必备工具&#xff0c;可应用于教育教学、科研机构、工程学、论文写作、期刊排版、编辑理科试卷等领域。可视化公式编辑器轻松创建数学方程式和化学公式。兼容Office Word、PowerPoint、Pages、Keynote、Numbers 等7…...

如何支持h.265视频

前言 略 h.265视频 h.265是一种视频编码格式。 随着视频编码技术的发展&#xff0c;相比H.264, H.265同等画质体积仅为一半、带宽占用省一半、画质更细腻等诸多优势。 但Web浏览器还不支持H.265的解码播放&#xff0c;因此基于Web Assembly(封装FFmpeg)、JS解封装、Canvas投…...

vue 放大镜(简易)

目录 zoom组件 <template><div class"pic-img"><div class"img-container"><img ref"img" load"imgLoaded" :src"url" :style"overlayStyle" error"imgerrorfun"/><div cl…...

【计算机网络】第一章——概述

个人主页直达&#xff1a;小白不是程序媛 系列专栏&#xff1a;计算机网络基础 目录 前言 计算机网络概述 概念 功能 组成 分类 标准化工作 性能指标 速率 带宽 吞吐量 时延 时延带宽积 往返时延RTT 利用率 分层 为什么要分层&#xff1f; 分层的基本原则&am…...

vue实现在页面拖拽放大缩小div并显示鼠标在div的坐标

1、功能要求&#xff1a; 实现在一个指定区域拖拽div,并可以放大缩小&#xff0c;同时显示鼠标在该div里的坐标&#xff0c;如图可示 缩小并拖动 2、实现 <div class"div_content" ref"div_content"><div class"div_image" id"…...

LuatOS-SOC接口文档(air780E)-- io - io操作(扩展)

示例 -- io模块是lua原生模块,LuatOS增加了一些API -- 请配合os模块一起使用-- 只读模式, 打开文件 local fd io.open("/xxx.txt", "rb") -- 读写默认,打开文件 local fd io.open("/xxx.txt", "wb") -- 写入文件,且截断为0字节 loc…...

【数据结构】线性表(六)堆栈:顺序栈及其基本操作(初始化、判空、判满、入栈、出栈、存取栈顶元素、清空栈)

文章目录 一、堆栈1. 定义2. 基本操作 二、顺序栈0. 顺序表1. 头文件和常量2. 栈结构体3. 栈的初始化4. 判断栈是否为空5. 判断栈是否已满6. 入栈7. 出栈8. 查看栈顶元素9. 清空栈10. 主函数11. 代码整合 堆栈Stack 和 队列Queue是两种非常重要的数据结构&#xff0c;两者都是特…...

父组件可以监听到子组件的生命周期吗?

在 Vue 中,父组件是可以监听到子组件的生命周期的。Vue 提供了一些特殊的钩子函数,可以在父组件中监听子组件的生命周期事件。 以下是一些常用的方法来监听子组件的生命周期: 1:使用$emit: 在子组件的生命周期钩子函数中,使用 $emit 方法触发自定义事件,向父组件发送通…...

[开源]MIT开源协议,基于Vue3.x可视化拖拽编辑,页面生成工具

一、开源项目简介 AS-Editor 基于 Vue3.x 可视化拖拽编辑&#xff0c;页面生成工具。提升前端开发效率&#xff0c;可集成至移动端项目作为通过定义 JSON 直接生成 UI 界面。 二、开源协议 使用MIT开源协议 三、界面展示 四、功能概述 基于Vue可视化拖拽编辑&#xff0c;…...

【C++ Primer Plus学习记录】数组的替代品

目录 1.模板类vector 2.模板类array&#xff08;C11&#xff09; 3.比较数组、vector对象和array对象 模板类vector和array是数组的替代品。 1.模板类vector 模板类vector类似于string类&#xff0c;也是一种动态数组。您可以在运行阶段设置vector对象的长度&#xff0c;可…...

JSP免杀马

JSP免杀马 随着Java框架的进化和程序员的内卷&#xff0c;使用PHP编写的系统越来少&#xff0c;使用Java编写的系统越来越多。JSP马的使用越来越多&#xff0c;但是就目前来看&#xff0c;各大厂商对JSP马的查杀效果还是不尽人意。这里简单通过Java的反射机制和ClassLoader技术…...

2023-10-16 node.js-调用python-记录

NodeJS 作为后端&#xff0c;仅在需要时调用 Python 在某些特殊的场景下&#xff0c;比如复杂耗时的数据处理和运算时&#xff0c;我们可以用 Python 脚本编写&#xff0c;然后使用 Node 的子进程调用 Python 脚本即可&#xff0c;这样可以提升效率。如下代码&#xff0c;我们…...

Kotlin 设置和获取协程名称

1&#xff0c;设置写成名称 创建协程作用域是或者创建协程是有个上下文参数&#xff08;context: CoroutineContext&#xff09; 创建协程作用域 CoroutineScope(Dispatchers.IO CoroutineName("协程A"))//Dispatchers.IO根据实际情况设置可有可无 源码&#xf…...

笔记本CPU温度多少正常?一文看懂正常范围+实时查看方法

笔记本电脑玩大型游戏、进行视频剪辑或长时间高负载运行时&#xff0c;CPU温度可能会明显升高。如果温度过高&#xff0c;不仅会影响性能&#xff0c;还可能缩短硬件寿命。那么&#xff0c;笔记本CPU温度多少算正常&#xff1f;如何查看CPU的实时温度&#xff1f;本文将为你详细…...

别再死记硬背公式了!手把手教你理解DBC文件里的factor和offset(附CAN信号收发实战代码)

从代码反推DBC参数&#xff1a;工程师视角下的factor与offset实战指南 每次看到DBC文件里那些神秘的factor和offset参数&#xff0c;你是不是也和我当年一样&#xff0c;先机械地抄下公式&#xff0c;然后在调试时对着报错抓耳挠腮&#xff1f;作为在汽车电子行业摸爬滚打多年的…...

CMT2380F32低功耗实战:用SysTick和LPT计时器设计一个精准的定时唤醒系统(附代码)

CMT2380F32低功耗实战&#xff1a;用SysTick和LPT计时器设计精准定时唤醒系统 引言 在物联网终端设备开发中&#xff0c;电池续航能力往往决定产品的市场竞争力。CMT2380F32作为一款面向低功耗场景的MCU&#xff0c;其深度休眠模式下的电流可低至1μA以下&#xff0c;但如何在…...

JCSprout事务管理终极指南:声明式与编程式事务对比分析

JCSprout事务管理终极指南&#xff1a;声明式与编程式事务对比分析 【免费下载链接】JCSprout &#x1f468;‍&#x1f393; Java Core Sprout : basic, concurrent, algorithm 项目地址: https://gitcode.com/gh_mirrors/jc/JCSprout JCSprout作为Java核心知识的学习…...

Bilibili评论爬虫:轻松获取完整B站评论数据的终极解决方案

Bilibili评论爬虫&#xff1a;轻松获取完整B站评论数据的终极解决方案 【免费下载链接】BilibiliCommentScraper B站视频评论爬虫 Bilibili完整爬取评论数据&#xff0c;包括一级评论、二级评论、昵称、用户ID、发布时间、点赞数 项目地址: https://gitcode.com/gh_mirrors/b…...

3步解决Windows和Office激活难题:KMS_VL_ALL_AIO智能脚本完全指南

3步解决Windows和Office激活难题&#xff1a;KMS_VL_ALL_AIO智能脚本完全指南 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows系统激活而烦恼吗&#xff1f;每次重装系统后都要面对…...

企业级Docker WASM边缘网关部署指南,含FaaS函数热加载、OTA差分更新与断网自治策略(仅限头部客户内部流出)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;企业级Docker WASM边缘网关部署指南 WebAssembly&#xff08;WASM&#xff09;正迅速成为边缘计算场景中轻量、安全、跨平台函数执行的核心载体。结合 Docker 的标准化分发能力与 WASM 的零成本沙箱特性…...

微信小程序的计算机软考模拟系统的设计与实现

目录同行可拿货,招校园代理 ,本人源头供货商功能模块分析技术实现要点扩展功能设计项目技术支持源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作同行可拿货,招校园代理 ,本人源头供货商 功能模块分析 用户管理模块 提供注册、登录、个人信…...

终极实战指南:从零精通英雄联盟智能助手League Akari

终极实战指南&#xff1a;从零精通英雄联盟智能助手League Akari 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power &#x1f680;. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League Akari是一款基于官方L…...

ArcGIS Pro 拓扑编辑实战:用‘地图拓扑’功能批量修改共享边界的完整流程

ArcGIS Pro 拓扑编辑实战&#xff1a;用‘地图拓扑’功能高效处理共享边界的完整指南 当面对需要同时修改多个相邻面要素的共享边界时&#xff0c;GIS工程师常常陷入两难&#xff1a;手动逐个编辑不仅耗时耗力&#xff0c;还容易在相邻要素间产生缝隙或重叠。这正是ArcGIS Pro中…...