1004. Max Consecutive Ones III

时间:2021-02-19 23:46:26   收藏:0   阅读:30

仅供自己学习

思路:

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

 

原文:https://www.cnblogs.com/Mrsdwang/p/14417737.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!