【算法集训】基础算法:滑动窗口

定义一个快慢指针,用于截取数组中某一段信息。同时可以改变快慢指针的值来获取结果,这个过程比较像滑动。

1493. 删掉一个元素以后全为 1 的最长子数组

  • 定义快慢指针
  • 快指针先走,如果到了第二个0上的时候。前面1的个数就是fast - slow - 1,但是为了后面的继续计算,需要将slow指针+1即可。
// 滑动窗口
int longestSubarray(int* nums, int numsSize) {// 定义快慢指针int slow = 0;int fast = -1;// 记录0的个数int zero = 0;// 最大长度int maxlen = 1;// 快指针走while(fast < numsSize - 1) {fast++;zero += !nums[fast];while(zero > 1) {zero -= !nums[slow];slow++;}if(fast - slow + 1 > maxlen) {maxlen = fast - slow + 1;}}return maxlen - 1;
}

1004. 最大连续1的个数 III

和上一题一样的,只不过将替换0的值增加为了k个。

int longestOnes(int* nums, int numsSize, int k) {// 定义快慢指针int slow = 0;int fast = -1;int zero = 0;  //记录0的个数int maxlen = 0; //最终的返回的最大长度// 快指针先走while(fast < numsSize - 1) {fast ++;zero += !nums[fast];while( zero > k) {zero -= !nums[slow];slow++;}if(maxlen < fast - slow + 1) {maxlen = fast - slow + 1;}}return maxlen;
}

2730. 找到最长的半重复子字符串

int longestSemiRepetitiveSubstring(char * s){int slow = 0;int fast = -1;int same = 0;int maxlen = 0;int len = strlen(s);// 快指针while(fast < len - 1) {fast++;// 如果快大于慢的话就可以看相邻的相等否了?if(fast - slow > 0) {// 如果相等则同样记录+1if(s[fast] == s[fast - 1]) {same++;}// 当大于1的时候就需要移动慢指针了while( same > 1 ) {if(s[slow] == s[slow + 1]) {--same;}slow ++;}}if(fast - slow + 1 > maxlen) {maxlen = fast - slow + 1;}}return maxlen;
}

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

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

相关文章

【MATLAB源码-第24期】基于matlab的水声通信中海洋噪声的建模仿真,对比不同风速的影响。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 水声通信&#xff1a; 水声通信是一种利用水中传播声波的方式进行信息传递的技术。它在水下环境中被广泛应用&#xff0c;特别是在海洋科学研究、海洋资源勘探、水下军事通信等领域。 1. **传输媒介**&#xff1a;水声通信利…

人工智能本地化的时代即将到来

2024 年 3 月 26 日&#xff0c;我有幸应邀参加了在北京凤凰中心举办的AI PC发布会。在这次活动中&#xff0c;英特尔展示了基于第一代酷睿 Ultra 高能效 X86 处理器的商用客户端&#xff0c;充分展现了 AI 加速下企业业务数字化的新趋势。英特尔成功地实现了对 AIGC 的最后一公…

51单片机学习笔记11 使用DS18B20温度传感器

51单片机学习笔记11 使用DS18B20温度传感器 一、DS18B20简介1. 主要特点2. 工作原理3. 引脚说明4. ROM 二、1-wire协议简介1. 总线结构&#xff1a;2. 通信方式&#xff1a;3. 数据传输&#xff1a;4. 设备识别&#xff1a;5. 供电方式&#xff1a;6. 应用场景&#xff1a;7. 优…

【SQL】COUNT()函数 用法详解

COUNT()函数 COUNT函数用法&#xff1a;COUNT ( [ALL | DISTINCT] column | expression | *) ALL关键字指示统计所有值&#xff0c;而DISTINCT关键字强制函数仅对不同的值进行操作。 默认情况下&#xff0c;使用ALL选项。条件表达式 COUNT()函数中条件表达式加 OR null。例如…

深度学习 Lecture 6 学习曲线、高偏差和高方差的调整和误差分析过程

一、学习曲线&#xff08;Learning curves) 用处&#xff1a;帮助了解学习算法性能如何的方式 曲线随着经验的数量&#xff08;算法所拥有的训练样本&#xff09;发生的变化 PS: 随着训练样本的增大&#xff0c;交叉验证误差会越来越小&#xff0c;趋于平稳&#xff1b;而训…

机器学习之决策树桩或决策残端(Decision Stump)

简介 决策树是一种常见的机器学习模型,它由一个树状结构组成,每个节点代表一个特征属性的决策规则,而每个叶子节点代表一个类别标签或者是一个数值输出。决策树的每个节点都会根据一个特征属性进行划分,直到达到某个停止条件为止,例如节点中的样本数量小于某个阈值,或者…

在rv1126上实现数字识别

有个项目&#xff0c;需要用到识别数字。 使用rv1126&#xff0c;实现数字的识别&#xff0c;如下图。 效果上还是存在有些问题&#xff0c;但还是比较好的。 1.采用的数据集少 2.数据分布不一。0&#xff0c;1两个数据集内容多&#xff0c;5&#xff0c;6&#xff0c;7&am…

webpack搭建开发环境

webpack搭建开发环境 一.webpack开发模式二.webpack打包模式三.webpack打包模式应用四.Webpack 前端注入环境变量五.Webpack 开发环境调错 source map六. Webpack 设置解析别名路径七.优化-CDN的使用八.多页面打包九.优化-分割公共代码一.webpack开发模式 作用:启动 Web 服务…

健身房预约管理系统(源码+文档)

健身房预约管理系统&#xff08;小程序、ios、安卓都可部署&#xff09; 文件包含内容程序简要说明含有功能&#xff1a;项目截图客户端首页我的预约登录教练预约时间我的注册页个人资料课程预约课程预约 管理端订单管理团课管理教练管理分类管理用户管理 文件包含内容 1、搭建…

Vue3性能优化之自定义指令实现图片懒加载

图片懒加载是一种常见性能优化的方式&#xff0c;进入网址时不全部加载图片 当用户进入图片可视区域时加载 不仅大大减少了服务器的压力 也可以时首屏时间变短 图片懒加载的实现原理&#xff1a;在图片没进入可视区域的时候&#xff0c;只需要让 img 标签的 src 属性指向一张…

【5G 接口协议】CU与DU之间的F1协议介绍

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G算力网络技术标准研究。 博客…

从词表到RLHF一镜到底训练一个大模型

第6章 如何训练大语言模型 本章节主要探讨训练大语言模型的步骤和方法论。 目前,可能大家接触的最多的模型训练方式是微调,也能收到一定程度的比较好的效果,其中有代表性的项目有Github上的Alpaca, Baize,Vicuna等。 6.1 Pretrain 预训练 有了微调,为什么还需要预训练,直…

第116讲:使用Mycat-eye管理Mycat数据库服务

文章目录 1.Mycat的管理工具2.Mycat-eye介绍3.部署Mycat-eye3.1.安装Zookeep3.2.安装Mycat-eye3.3.访问Mycat-eye 4.在Mycat-eye中导入Mycat服务的信息 1.Mycat的管理工具 Mycat默认开通2个端口&#xff0c;可以在server.xml中进行修改。 8066 数据访问端口&#xff0c;即进行…

管易云和金蝶云星空单据接口对接

管易云和金蝶云星空单据接口对接 接入系统&#xff1a;金蝶云星空 金蝶K/3Cloud结合当今先进管理理论和数十万家国内客户最佳应用实践&#xff0c;面向事业部制、多地点、多工厂等运营协同与管控型企业及集团公司&#xff0c;提供一个通用的ERP服务平台。K/3Cloud支持的协同应用…

8.4 循环神经网络

小结 对隐状态使用循环计算的神经网络称为循环神经网络&#xff08;RNN&#xff09;。 循环神经网络的隐状态可以捕获直到当前时间步序列的历史信息。 循环神经网络模型的参数数量不会随着时间步的增加而增加。 我们可以使用循环神经网络创建字符级语言模型。 我们可以使用…

条形图、柱状图的绘制方法

【题目描述】 用*号输出柱状图。第一行输入一个整数n表示数据个数&#xff0c;第二行输入n个整数&#xff0c;用空格隔开。n和输入的数都不超过20。 【样例输入】 7 5 1 1 8 1 1 5 【样例输出】 1&#xff0e;条形图&#xff08;水平柱状图&#xff09; 样例中的柱状图属…

Generative AI 新世界 | 扩散模型原理的代码实践之采样篇

前言 本期文章&#xff0c;我们一起来探究生成式 AI 这一火热的新知识领域。 目前计划有三个大方向&#xff1a; 代码深度实践方向。例如用代码完整诠释 Diffusion 模型的工作原理&#xff0c;或者 Transformer 的完整架构等&#xff1b; 模型部署和训练优化方向。例如尝试解…

【LeetCode热题100】【数组】最大子数组和

题目链接&#xff1a;53. 最大子数组和 - 力扣&#xff08;LeetCode&#xff09; 只要和的值不要哪个子数组&#xff0c;原问题的解由子问题的解组成&#xff0c;可以用动态规划&#xff0c;数组中每个元素都是一个子数组的结尾&#xff0c;dp[i]是以num[i]为结尾的最大子数组…

Linux实战笔记(六) SSH

大家好&#xff0c;我是半虹&#xff0c;这篇文章我们介绍一下 SSH 1、简介 SSH 全称 Secure Shell&#xff0c;本质上是建立在应用层之上的网络传输协议 通过加密和认证机制保证传输安全&#xff0c;经常用于远程登录或者远程访问 除此之外&#xff0c;SSH 也能完成端口转发…

C++进阶篇10---特殊类设计

一、设计一个类&#xff0c;不能被拷贝 有人可能会觉得&#xff0c;这不是很简单吗&#xff0c;直接把拷贝构造ban掉&#xff0c;不就行了&#xff0c;但事实真的如此吗&#xff1f; class A { public:A(){}A(const A& tmp) delete;// ... };int main() {A a;// A b a;…