1. 解題思路和leetcode424: https://blog.csdn.net/qieyuan4083/article/details/104112465 一樣, 甚至更簡單些.
class Solution {
public:
int longestOnes(vector<int>& A, int K) {
int left=0, right=0;
int zeroCount = 0;
int res = INT_MIN;
while(right<A.size()) {
//統計字符串中0的個數
if(A[right]==0) zeroCount++;
//如果0的個數小於K,說明可以完全替換,
//因此可以計入結果進行比較.
if(zeroCount<=K) res = max(res, right-left+1);
right++;
//如果條件不滿足只需將
//窗口整體向右移動就好了.
while(zeroCount>K) {
if(A[left]==0) zeroCount--;
left++;
}
}
//注意有可能沒有符合條件的,因此一定要進行判斷.
return res==INT_MIN ? 0:res;
}
};