1004. Max Consecutive Ones III

时间:2021-02-20 12:21:43   收藏:0   阅读:0

仅供自己学习

思路:

又是滑动窗口的问题,只要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 };

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!