程式語言 - LeetCode - C++ - 1004. Max Consecutive Ones III



參考資訊:
https://www.cnblogs.com/grandyang/p/14290994.html

題目:


解答:

class Solution {
public:
    int longestOnes(vector<int>& nums, int k) {
        int r = 0;
        int cnt = 0;
        int left = 0;

        for (int i = 0; i < nums.size(); i++) {
            if (nums[i] == 0) {
                cnt += 1;
            }

            while (cnt > k) {
                if (nums[left] == 0) {
                    cnt -= 1;
                }
                left += 1;
            }

            r = max(i - left + 1, r);
        }

        return r;
    }
};