最大连续 1 的个数
题目
给定一个二进制数组, 计算其中最大连续 1 的个数。
示例
输入:[1,1,0,1,1,1]
输出:3
解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.
题解
由题需要计算最大连续 1 的个数,可以采用一次遍历的方法,在遍历数组时记录最大连续 1 的个数和当前连续 1 的个数,若当前元素为 1 ,则当前连续 1 的个数 +1 ,若当前元素不是 1 ,则更新最大连续 1 的个数,并将当前连续 1 的个数清零。
注意,遍历结束后需要再次更新当前连续 1 的个数,因为最大连续 1 的子序列可能出现在数组末尾。
代码
class Solution {
public:
int findMaxConsecutiveOnes(vector<int>& nums) {
int maxCount=0,count=0;
int n=nums.size();
for(int i=0;i<n;i++){
if(nums[i]==1){
count++;
}else{
maxCount=max(maxCount,count);
count=0;
}
}
//若最大连续 1 子数组在数组末尾,则需要再次更新 maxCount
maxCount=max(maxCount,count);
return maxCount;
}
};