This is the following question of 485. If for most one 0 can be flipped to 1, then what is the max consecutive 1s?
Solution:
Nee two variables. One for the previous length of 1s, which may be used when there is only one 0 existing between 1s. The other is the count of 1s after 0.
Code:
class Solution {
public:
int findMaxConsecutiveOnes(vector<int>& nums) {
int res = 0, l = nums.size(), c1 = 0, pre = 0;//c1 is the counting of 1s.
for(int i=0; i<l; ++i){
++pre;// the counting for previous 1s.
++c1;
if(nums[i] == 0){
c1 = pre;
pre = 0;
}
res = max(res, c1);
}
return res;
}
};
No comments :
Post a Comment