滑动窗口(六)最大连续1的个数 III

embedded/2024/11/27 18:25:16/

1004. 最大连续1的个数 III

给定一个二进制数组 nums 和一个整数 k,如果可以翻转最多 k0 ,则返回 数组中连续 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。

不要去想怎么翻转,不要把问题想的很复杂,这道题的结果⽆⾮就是⼀段连续的 1 中间塞了 k 个 0 嘛。

因此,我们可以把问题转化成:求数组中⼀段最⻓的连续区间,要求这段区间内 0 的个数不超过 k 个

暴力枚举 + 计数器判断 (俩层for循环枚举出所有可能)

class Solution {
public:int longestOnes(vector<int>& nums, int k) {int n = nums.size();int ret = 0;for(int i = 0; i < n; i++){int zero = k; // 在第二个for循环之前保存变量k的值for(int j = i; j < n; j++){if(nums[j] == 0)    // 每访问一个0,对zero进行--更新zero--;if(zero >= 0)   // 这段子数组区间内0个个数小于k,就对ret进行一次更新ret = max(ret, j-i+1);else    // 若0的个数大于k,则此次循环直接跳出break;}}return ret;}
};

class Solution {
public:int longestOnes(vector<int>& nums, int k) {int n = nums.size();int ret = 0;int left = 0, right = 0, zero = k;while(right < n){if(nums[right] == 0)    // 1、进窗口zero--;while(zero < 0)         // 2、出窗口if(nums[left++] == 0)zero++;ret = max(ret, right-left+1);// 3、更新结果right++;}return ret;}
};


http://www.ppmy.cn/embedded/140969.html

相关文章

【5】STM32·FreeRTOS·临界段保护与调度器挂起

目录 一、临界段代码保护简介 二、临界段代码保护函数介绍 2.1、调用示例 2.2、内部实现 三、任务调度器的挂起和恢复 3.1、调用示例 3.2、内部实现 一、临界段代码保护简介 什么是临界段&#xff1a;临界段代码也叫做临界区&#xff0c;是指那些必须完整运行&#xff…

HDR视频技术之四:HDR 主要标准

HDR 是 UHD 技术中最重要维度之一&#xff0c;带来新的视觉呈现体验。 HDR 技术涉及到采集、加工、传输、呈现等视频流程上的多个环节&#xff0c;需要定义出互联互通的产业标准&#xff0c;以支持规模化应用和部署。本文整理当前 HDR 应用中的一些代表性的国际标准。 1 HDR 发…

【卷积神经网络;深度学习;滑坡检测;遥感|论文解读1】滑坡检测特征增强框架——AMU-Net

【卷积神经网络&#xff1b;深度学习&#xff1b;滑坡检测&#xff1b;遥感|论文解读1】滑坡检测特征增强框架——AMU-Net 【卷积神经网络&#xff1b;深度学习&#xff1b;滑坡检测&#xff1b;遥感|论文解读1】滑坡检测特征增强框架——AMU-Net 文章目录 【卷积神经网络&…

【Java网络编程】详解常见servlet的API使用

servlet常用类和接口 在Java Servlet中&#xff0c;主要涉及的几个类和接口包括&#xff1a; HttpServlet&#xff1a;这是一个抽象类&#xff0c;提供了处理HTTP请求的基本功能。你通常会继承这个类来创建自己的Servlet。 HttpServletRequest&#xff1a;这个接口是ServletR…

Doris 数据集成 LakeSoul

Doris 数据集成 LakeSoul 作为一种全新的开放式的数据管理架构,湖仓一体(Data Lakehouse)融合了数据仓库的高性能、实时性以及数据湖的低成本、灵活性等优势,帮助用户更加便捷地满足各种数据处理分析的需求,在企业的大数据体系中已经得到越来越多的应用。 在过去多个版本…

深度学习在雷达中的应用

1.CNN基本原理 20世纪60年代&#xff0c; Hubel和Wiese研究猫脑皮层发现用于局部敏感和方向选择的神经元具有独特的 网络结构&#xff0c;该结构可以降低反馈神经网络的复杂性&#xff0c;针对此研究提出了CNN。近些年&#xff0c;针对CNN具有避免图像的复杂前期预处理的优势&a…

HTML的自动定义倒计时,这个配色存一下

<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>自定义倒计时</title><style>* {mar…

【单元测试】【Android】JUnit 4 和 JUnit 5 的差异记录

背景 Jetbrain IDE 支持生成 Test 类&#xff0c;其中选择JUnit5 和 JUnit&#xff0c;但是感觉这不是标准的单元测试&#xff0c;因为接口命名吧。 差异对比 两者生成的单测API名称同原API&#xff0c;没加test前缀的。使用差异主要表现在&#xff1a; setUp &#xff06; …