LeetCode 1004 最大连续 1 的个数

LeetCode 1004 最大连续 1 的个数

🟡 中等 https://leetcode.cn/problems/max-consecutive-ones-iii/description/

思路

  • 窗口内容:最后经过替换后的连续1。
  • 长度限制:无
  • 窗口内元素限制:
    • 窗口内元素0个数要小于k。

这里 zero_used 一开始是小数,故while中是大数, 答案在小数内。

class Solution {

public:

    int longestOnes(vector<int>& nums, int k) {

        int zero_used = 0;

        int left = 0;

        int res = 0;

        for (int i = 0; i < nums.size(); i++) {

            if (nums[i] == 0 ) {

                zero_used++;

            }

            while(zero_used>k){

                if(nums[left]==0){

                    zero_used--;

                }

                left++;

            }

            res = max(res, i - left + 1);

        }

        return res;

    }

};