赛码网-01串的魔法(dp) 100%AC代码(C)

news/2024/11/16 9:56:56/

————————————————————————————————————
⏩ 大家好哇!我是小光,嵌入式爱好者,一个想要成为系统架构师的大三学生。
⏩最近在准备秋招,一直在练习编程。
⏩本篇文章对赛码网的01串的魔法 题目做一个详解。
⏩感谢你的阅读,不对的地方欢迎指正。
————————————————————————————————————
题目:
在这里插入图片描述
思路解析:
问题要求找到连续数字1的最长长度,其中可以通过最多K次将0替换为1。我们可以使用滑动窗口的方法来解决。

  1. 定义两个指针leftright,初始时都指向数组的起始位置。
  2. 初始化变量changemaxLen为0,用于记录替换的次数和最长连续1的长度。
  3. 通过移动right指针来扩展窗口,每遇到一个1,将count加1。
  4. 如果遇到0,分两种情况处理:
    • 如果change小于K,表示还有机会将0替换为1,此时将change加1,count加1。
    • 如果change已经等于K,表示没有机会再替换0了,此时需要移动left指针来缩小窗口,直到窗口内的0减少到K以内。
  5. 每次移动窗口后,将countmaxLen比较,更新maxLen的值。
  6. 重复步骤3到步骤5,直到right指针达到数组的末尾。
  7. 返回maxLen作为结果。

代码如下:

#include <stdio.h>
int MaxLen(int *nums,int length,int k)
{int left = 0;int right = 0;int change = 0;int maxlen = 0;int count = 0;while(right < length){if(nums[right] == 1){count ++;}else {if(change < k){change ++;}else {while(nums[left] != 0){left++;count --;}left ++;count--;}count ++;}if(count > maxlen){maxlen = count;}right++;}return maxlen;
}
int main(){int n,k,arr[300005];scanf("%d %d",&n,&k);for(int i = 0;i < n;i ++){scanf("%d",&arr[i]);}printf("%d",MaxLen(arr,n,k));return 0;}

http://www.ppmy.cn/news/1022691.html

相关文章

pc端网页用vue并且实现响应式 vue+bootstrap-vue

1、hbuiler内新建vue项目 在项目文件夹下用npm加载依赖&#xff08;或者用hbuilder内打开命令&#xff09; 2、配置路由 src内新建router文件夹&#xff0c;router内新建index.js index.js内配置重定向到首页 main.js内配置路由 import router from /router/index.js new…

HTML+CSS 改进前端简易响应式登录界面

day5 改进上次的项目 HTMLCSS前端 动态响应用户登录界面_一只名叫Me的猫的博客-CSDN博客 emmet自动创建html模板 在vscode中&#xff0c;空白html文件打入一个感叹号&#xff0c;可以自动创建html模板&#xff0c;避免手搓&#xff08;悲&#xff09;。 上次就是因为手搓导致漏…

研究论文关于火灾的烟雾探测

普拉萨梅什加德卡尔 探索所有模型以选择最佳模型。 一、介绍&#xff1a; 烟雾探测器检测烟雾并触发警报以提醒他人。通常&#xff0c;它们存在于办公室、家庭、工厂等。通常&#xff0c;烟雾探测器分为两类&#xff1a; Photoelectric Smoke Detector- 设备检测光强度&#x…

SQL常见命令语句

1.连接数据库 mysql (-h IP) -u root -p 密码2.查看数据库 show databases3.使用数据库 use db_name4.查看表 show tables [from db_name]5.查看表结构 desc tb_name6.创建、删除、选择数据库 create database db_namedrop database db_nameuse db_name7.数据类型 参考链…

巨人互动|Meta海外户Meta的业务工具转化API

Meta的业务工具转化API是一项创新技术&#xff0c;它可以帮助企业实现更高效的业务工具转化和集成。通过这个API&#xff0c;企业可以将不同的业务工具整合到一个统一的平台上&#xff0c;提高工作效率和协作能力。本文小编将介绍Meta的业务工具转化API的功能和优势。 巨人互动…

RHCE使用RHEL系统角色题报错

题目&#xff1a; 使用 RHEL 系统角色 4. 安装 RHEL 系统角色软件包&#xff0c;并创建符合以下条件的 playbook/home/curtis/ansible/selinux.yml &#xff1a; 在所有受管节点上运行 使用 selinux 角色 配置该角色&#xff0c;以强制状态使用 selinux 报错一&#xff1a; [c…

系统集成项目管理工程师好考吗?不报班能考过吗?

即使不参加培训班&#xff0c;只要自我控制能力还不错&#xff0c;也可以通过考试。中级集成考试难度不大&#xff0c;主要是要理解47个过程的输入输出和工具的使用&#xff0c;很多题目都是按照这个逻辑出的。建议可以在网上或者刷题APP上找一些资料和真题来练习&#xff0c;因…

5V升压到12V2A芯片方案

5V升压到12V2A芯片方案&#xff0c;采用了一款2.7V-18V输入&#xff0c;4.5V-18V输出的峰值10A同步升压芯片&#xff0c;内置了MOS&#xff0c;封装为QFN13。 在电子设备中&#xff0c;经常会遇到需要将低电压提升到较高电压的情况。例如&#xff0c;对于一些需要12V电压供电的…