力扣(LeetCode)算法_C++——最大连续 1 的个数 III

给定一个二进制数组 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。

cpp 复制代码
    int longestOnes(vector<int>& nums, int k) {
        int left = 0 , right = 0;
        int len = 0, maxi = 0;
        int n = nums.size();
        for (right = 0 ; right < n ; ++right){
            if (nums[right] == 0){
                if (k > 0) {
                    k--;
                    len++;
                    maxi = max(len, maxi);
                } else{
                    while (nums[left] == 1) {left++;len--;}
                    left++;
                }
            } else {
                len++;
                maxi = max(maxi, len);
            }
        }
        return maxi;
    }
相关推荐
C++ 老炮儿的技术栈6 分钟前
分享一个安全的CString
c语言·c++·windows·git·安全·visual studio
穿条秋裤到处跑26 分钟前
每日一道leetcode(2026.03.31):字典序最小的生成字符串
算法·leetcode
桦044 分钟前
[C++复习]:STL
开发语言·c++
苏宸啊2 小时前
rbtree封装map和set
c++
汉克老师2 小时前
GESP2025年6月认证C++三级( 第一部分选择题(1-8))
c++·二进制·原码·补码·gesp三级·gesp3级·八进制、
不想写代码的星星2 小时前
C++ 折叠表达式:“我写递归你写折叠,咱俩代码差十年”
c++
CoovallyAIHub3 小时前
VisionClaw:智能眼镜 + Gemini + Agent,看一眼就能帮你搜、帮你发、帮你做
算法·架构·github
Titan20243 小时前
map和set的封装学习笔记
数据结构·c++
CoovallyAIHub3 小时前
低空安全刚需!西工大UAV-DETR反无人机小目标检测,参数减少40%,mAP50:95提升6.6个百分点
算法·架构·github
CoovallyAIHub3 小时前
IEEE Sensors | 湖南大学提出KGP-YOLO:先定位风电叶片再检测缺陷,三数据集mAP均超87%
算法