仅供自己学习
思路:
又是滑动窗口的问题,只要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 };