LeetCode //C - 1004. Max Consecutive Ones III

1004. Max Consecutive Ones III

Given a binary array nums and an integer k, return the maximum number of consecutive 1’s in the array if you can flip at most k 0’s.
 

Example 1:

Input: nums = [1,1,1,0,0,0,1,1,1,1,0], k = 2
Output: 6
Explanation: [1,1,1,0,0,1,1,1,1,1,1]
Bolded numbers were flipped from 0 to 1. The longest subarray is underlined.

Example 2:

Input: nums = [0,0,1,1,0,0,1,1,1,0,1,1,0,0,0,1,1,1,1], k = 3
Output: 10
Explanation: [0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1]
Bolded numbers were flipped from 0 to 1. The longest subarray is underlined.

Constraints:
  • 1 < = n u m s . l e n g t h < = 1 0 5 1 <= nums.length <= 10^5 1<=nums.length<=105
  • nums[i] is either 0 or 1.
  • 0 <= k <= nums.length

From: LeetCode
Link: 1004. Max Consecutive Ones III


Solution:

Ideas:

To solve the “Max Consecutive Ones III” problem in C, you’ll need to implement a function that uses the sliding window technique. The idea is to maintain a window that can include at most k zeros. As you traverse the array, you expand the window to the right by including ones and flipping zeros (up to k times). If you encounter more than k zeros, you shrink the window from the left until the number of zeros in the window is k again. The maximum size of this window at any point gives you the maximum number of consecutive ones after flipping at most k zeros.

Code:
int longestOnes(int* nums, int numsSize, int k) {int left = 0, right = 0;int maxLen = 0;int zeroCount = 0;for (right = 0; right < numsSize; right++) {// If the current element is 0, increment the zero countif (nums[right] == 0) {zeroCount++;}// If the number of zeros exceeds k, move the left pointer forwardwhile (zeroCount > k) {if (nums[left] == 0) {zeroCount--;}left++;}// Update the maximum lengthmaxLen = (right - left + 1 > maxLen) ? right - left + 1 : maxLen;}return maxLen;
}

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

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

相关文章

五种主流数据库:基本检索功能

SQL 使用 SELECT 语句查询数据&#xff0c;本文比较五种主流数据库基本数据检索功能的实现和差异&#xff0c;包括 MySQL、Oracle、SQL Server、PostgreSQL 以及 SQLite。 &#x1f3f7;️示例表和数据初始化脚本下载。 SQL功能MySQLOracleSQL ServerPostgreSQLSQLite查询指定字…

Kafka生产环境问题总结与性能优化实践

Kafka可视化管理工具kafka-manager 安装及基本使用可参考: httos://wwwcnbloas.com/dadonaaa/o/8205302.html 线上环境规划 1. 消息丢失情况: 消

实战教学:零食百货商城小程序开发全程指导

随着移动设备的普及和互联网技术的发展&#xff0c;小程序成为越来越多人的选择&#xff0c;特别是在购物方面。开发一个零食百货商城小程序&#xff0c;可以让你在手机上随时随地购买各种零食&#xff0c;方便快捷。本文将为你提供全程指导&#xff0c;让你轻松开发一个成功的…

MySql的mvcc原理

目录 一、什么是mvcc? 二、什么是当前读,快照读? 当前读 快照读 三、mvcc实现原理 版本链 undo日志 Undo log 的用途 Read View(读视图) Read View几个属性 五、RR、RC级别下生成时机 一、什么是mvcc? mvcc全称Multi-Version Concurrency Control&#xff0c;即…

迪文屏开发保姆级教程5—表盘时钟和文本RTC显示

这篇文章要讲啥事呢&#xff1f; 本篇文章主要介绍了在DGBUS平台上使用表盘时钟和文本时钟RTC显示功能的方法。 文哥悄悄话&#xff1a; 官方开发指南PDF&#xff1a;&#xff08;不方便下载的私聊我发给你&#xff09; https://download.csdn.net/download/qq_21370051/8864…

Flowable-升级为7.0.0.M2-第一节

目录 升级jdk升级springboot到3.1.3升级数据库连接池druid-spring-boot-3-starter到1.2.20升级mybatis-plus到3.5.3.2升级flowable到7.0.0.M2 最近有些读者一直问flowable如何升级到7.0.0.M2&#xff0c;接下来我就一步步的把flowable升级到7.0.0.M2 升级jdk flowable7.x采用的…

算法导论复习(四)主方法的专题

主方法我们要记住的是什么呢&#xff1f;

浅谈矿山井下IT配电系统绝缘监测的应用

摘要&#xff1a;众所周知&#xff0c;能源作为经济发展的重要引擎&#xff0c;堪称是国民经济的命脉。采矿业一直是能源工业的重要支柱&#xff0c;我国的矿业生产主要来自井下开采&#xff0c;环境恶劣&#xff0c;就以煤矿为例&#xff0c;煤矿井下存在水、火、瓦斯、煤尘、…

C++单例模式:饿汉式、懒汉式

单例模式是什么&#xff1f; 单例模式是一种创建型的软件设计模式。通过单例模式的设计&#xff0c;使得创建的类在当前进程中只有唯一一个实例&#xff0c;并提供一个全局性的访问点&#xff0c;这样可以规避因频繁创建对象而导致的内存飙升情况。 单例模式有三个要点 私有化…

Shell三剑客:awk(awk编辑编程)二

一、IF 语句 IF 条件语句语法格式 #方式一&#xff1a; if (condition)action #方式二&#xff1a;使用花括号语法格式 if (condition) {action1;action2; ... } {if(表达式)&#xff5b;语句1;语句2;...&#xff5d;} IF 语句实例 #判断数字是奇数还是偶数 [rootlocalhost ~…

11.1Linux串口应用程序开发

UART简介 UART的全称是Universal Asynchronous Receiver and Transmitter&#xff0c;即异步发送和接收。 串口在嵌入式中用途非常的广泛&#xff0c;主要的用途有&#xff1a; 打印调试信息&#xff1b;外接各种模块&#xff1a;GPS、蓝牙&#xff1b; 串口因为结构简单、稳…

css的定位

为什么需要定位&#xff1f; 场景&#xff1a; 某个元素可以自由的在一个盒子内移动位置&#xff0c;并且压住其他盒子当我们滚动窗口的时候&#xff0c;盒子是固定屏幕某个位置的。 这二个需求&#xff0c;使用标准流和浮动的方式是无法实现的或者是不容易实现&#xff0c;所以…

电路设计时,继电器线圈、风扇电机绕组等感性负载必须有续流二极管。

续流二极管(也常被称为“自由轮流二极管”或“反向并联二极管”)在感性负载电路中的应用非常重要,尤其是在继电器线圈、风扇电机绕组等设备中。感性负载是指那些在其线圈中会产生感应电动势的负载,例如电动机、变压器和继电器等。当这些设备的电源被切断时,它们的线圈会因…

华为认证 | 有本数通HCIE在手,好就业吗?

HCIE数通也就是我们常说的路由与交换方向&#xff0c;作为华为认证中的基础方向&#xff0c;HCIE数通还是很多人想要考取的证书。 证书是职场很好的敲门砖&#xff0c;很多人考证也是为了能够让自己更有竞争力&#xff0c;因此很多人会关心就业问题&#xff0c;那么拿到数通方…

【C++】string

文章目录 1. 标准库中的string类1.1 string类 2 string类的常用接口说明2.1 string类对象的常见构造2.2 string类对象的容量操作2.3. string类对象的访问及遍历操作2.4 string类对象的修改操作2.5 string类非成员函数2.6 vs和g下string结构的说明 1. 标准库中的string类 1.1 s…

JG/T 413-2013 建筑用集成吊顶检测

集成吊顶是指由装饰模块、功能模块级构配件组成的&#xff0c;在工厂预制的、可自由组合的多功能一体化装置&#xff0c;根据材质的不同分为铝合金吊顶&#xff0c;钢板吊顶等。 JG/T 413-2013 建筑用集成吊顶板测试&#xff1a; 测试项目 测试标准 外观 JG/T 413 表面质量…

ELK----filebeat日志收集工具

ELK&#xff1a;filebeat日志收集工具和logstash相同 filebeat是一个轻量级的日志收集工具&#xff0c;所使用的系统资源比logstash部署和启动时使用的资源要小的多。 filebeat可以运行在非java环境。他可以代理logstash在非java环境上收集日志 filebeat无法实现数据的过滤&…

【zookeeper特点和集群架构】

文章目录 1. Zookeeper介绍2、ZooKeeper数据结构3、Zookeeper集群架构 1. Zookeeper介绍 ZooKeeper 是一个开源的分布式协调框架&#xff0c;是Apache Hadoop 的一个子项目&#xff0c;主要用来解决分 布式集群中应用系统的一致性问题。Zookeeper 的设计目标是将那些复杂且容易…

基于JavaServelet的同学录管理系统(Java毕业设计)

点击咨询源码 大家好&#xff0c;我是DeBug&#xff0c;很高兴你能来阅读&#xff01;作为一名热爱编程的程序员&#xff0c;我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里&#xff0c;我将会结合实际项目经验&#xff0c;分享编程技巧、最佳实践以及解决问题的…

java取出list中的某几个属性组成一个新的集合的几种方式

我用了三种方式,1:forEach循环;2:for循环;3:stream方法 package org.springblade.test;import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors;public class Test {org.junit.jupiter.api…