力扣(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;
    }
相关推荐
先吃饱再说1 分钟前
判断回文字符串,从一行代码到双指针优化
算法
见过夏天13 分钟前
C++ 基础入门完全指南
c++
黄敬峰3 小时前
深入理解算法核心:从递归思想、数组扁平化到快速排序
算法
得物技术4 小时前
从狂野代码到按目标生产:得物推荐 AI Harness 的工程化实践|AICon 演讲整理
人工智能·算法·架构
AI小老六7 小时前
SkillOpt 架构拆解:把 Skill 文本当参数,用执行轨迹训练 Agent
后端·算法·ai编程
胡萝卜术8 小时前
从“分数打架”到“排名投票”:为什么你的ChatBI必须用RRF?
算法·设计模式·面试
Asize9 小时前
初识DFS 与 BFS:递归、队列与图遍历
算法
罗西的思考1 天前
机器人 / 强化学习】HIL-SERL:人类在环驱动的具身智能进化框架
人工智能·算法·机器学习
美团技术团队1 天前
LongCat 开源 VitaBench 2.0:长期动态智能体基准新标杆
人工智能·算法
用户805533698031 天前
不止三件套:QObject 属性系统全关键字与运行时反射!
c++·qt