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

1004.最大连续1的个数

给定一个二进制数组 nums 和一个整数 k,如果可以翻转最多 k 个 0 ,则返回 数组中连续 1 的最大个数 。

示例 1:

输入:nums = [1,1,1,0,0,0,1,1,1,1,0], K = 2
输出:6
解释:[1,1,1,0,0,1,1,1,1,1,1]
粗体数字从 0 翻转到 1,最长的子数组长度为 6。

示例 2:

输入:nums = [0,0,1,1,0,0,1,1,1,0,1,1,0,0,0,1,1,1,1], K = 3
输出:10
解释:[0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1]
粗体数字从 0 翻转到 1,最长的子数组长度为 10。

解题思路

设置左右指针leftright,先移动右指针,有0就让k--,当k小于0 了,就移动左指针,碰到0就让k++,当k==0时,左指针停止移动。
由该思路可知,当符合题意条件(K>=0)时,该滑动窗口只变大不会变小,所以最后就能得到一个含有最多1的滑动窗口

class Solution {
public:int longestOnes(vector<int>& nums, int k) {int left = 0, right = 0;while (right <  nums.size()) {if (nums[right++] == 0) {--k;}if (k < 0 && nums[left++] == 0) {++k;}}return right - left;}
};
http://www.lryc.cn/news/371758.html

相关文章:

  • 【机器学习300问】116、什么是序列模型?序列模型能干什么?
  • kafka 快速上手
  • Python记忆组合透明度语言模型
  • 如何保证数据库和缓存的一致性
  • Java基础 - 多线程
  • 云顶之弈-测试报告
  • TCP/IP协议分析实验:通过一次下载任务抓包分析
  • Python项目开发实战:企业QQ小程序(案例教程)
  • list模拟与实现(附源码)
  • Java应用中文件上传安全性分析与安全实践
  • noVNC 小记
  • 设置systemctl start kibana启动kibana
  • PostgreSQL:在CASE WHEN语句中使用SELECT语句
  • 游戏心理学Day13
  • GitLab中用户权限
  • RunMe_About PreparationForDellBiosWUTTest
  • C++中变量的使用细节和命名方案
  • [ACTF新生赛2020]SoulLike
  • C#——析构函数详情
  • 探索重要的无监督学习方法:K-means 聚类模型
  • 将web项目打包成electron桌面端教程(二)vue3+vite+ts
  • Linux下的/etc/resolv.conf
  • 大语言模型 (LLM) 红队测试:提前解决模型漏洞
  • cocos入门11:生命周期
  • c++分辨读取的文件编码格式是utf-8还是GB2312
  • MS721仪表总线(M-Bus)从站收发电路
  • 用Python代码锁定Excel单元格以及行和列
  • 在Lua解释器中注册自定义函数库
  • UKP3D用户定制图框的思路
  • 事务并发问题 与 事务隔离级别