1004. Max Consecutive Ones III

仅供自己学习

思路:

又是滑动窗口的问题,只要right右移遇到0时就 count+1,当count+1> K时,就将left右移,当left遇到0时,就将count-1,当count=K时 left和right指向同一个位置,此时right再次右移重复上述步骤,直到right=A.size-1.

代码:

 1 class Solution {
 2 public:
 3     int longestOnes(vector<int>& A, int K) {
 4         int left=0,count=0;
 5         int maxlen=INT_MIN;
 6         int size=A.size();
 7         for(int i=0;i<size;++i){
 8             if(A[i]==0) ++count;
 9             while(count>K){
10                 if(A[left++]==0)--count;
11             } 
12             maxlen=max(maxlen,i-left+1);
13         }
14         return maxlen;
15     }
16 };

 

上一篇:1004 成绩排名


下一篇:1004. 最大连续1的个数 III