【滑动窗口】Leetcode 最大连续1的个数 III

题目解析

1004. 最大连续1的个数 III
在这里插入图片描述
按照k的数值将0反转成1,记录数组中连续1的最长个数


算法讲解

我们需要一个变量temp记录翻转的次数,每遇到一次0,temp++。当temp > k的时候此时说明翻转0已经到达极限,已经不可以在翻转了,所以此时就需要将左窗口往前移动:移动的要求也就是当左窗口当前的数值 == 0的时候,我们让temp--,上面的操作都在一个循环判断中,当循环判断移动左窗口的时候,temp < k此时就可以让右边窗口移动,继续翻转0

class Solution {
public:
    int longestOnes(vector<int>& nums, int k) {
        int ret = INT_MIN;
        int left = 0, right = 0;
        int n = nums.size();
        int temp = 0;
        while(right < n)
        {
            if(nums[right] == 0)temp++;
            while(temp > k)
            {
                //走到这里 说明已经翻转最大程度了
                if(nums[left] == 0)temp--;
                left++;
            }
            ret = max(ret, right - left + 1);
            
            right++;
        }
        return ret;
    }
};
	}

相关推荐

  1. 力扣1004题 连续1个数 III 滑动窗口

    2024-03-30 08:32:02       48 阅读
  2. 连续1 个数Ⅲ(滑动窗口)

    2024-03-30 08:32:02       28 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-30 08:32:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-30 08:32:02       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-30 08:32:02       82 阅读
  4. Python语言-面向对象

    2024-03-30 08:32:02       91 阅读

热门阅读

  1. RTSP服务端的响应格式

    2024-03-30 08:32:02       38 阅读
  2. 各类Springboot管理系统源码获取

    2024-03-30 08:32:02       32 阅读
  3. 5.98 BCC工具之biotop.py解读

    2024-03-30 08:32:02       33 阅读
  4. 【使用 PyQt6-第02章】 创建信号、槽和事件

    2024-03-30 08:32:02       30 阅读
  5. 5.97 BCC工具之biolatency.py解读

    2024-03-30 08:32:02       37 阅读
  6. Mac更换JDK版本

    2024-03-30 08:32:02       36 阅读
  7. 每天一个数据分析题(二百四十一)

    2024-03-30 08:32:02       47 阅读
  8. Python爬虫之数据的存储

    2024-03-30 08:32:02       34 阅读
  9. C++ 让类只在堆或栈上分配

    2024-03-30 08:32:02       45 阅读
  10. 搭建vite+vue3项目时遇到的问题

    2024-03-30 08:32:02       44 阅读