问题:
https://leetcode.com/problems/max-consecutive-ones/?tab=Description
Given a binary array, find the maximum number of consecutive 1s in this array.
找出一个二进制串中连续的1的个数。
Example 1: Input: [1,1,0,1,1,1] Output: 3
Explanation: The first two digits or the last three digits are consecutive 1s. The maximum number of consecutive 1s is 3.
分析:
遍历数组,如果是1,则计数加一,如果是0,则将当前计数值和最大值比较更新。然后计数归零。
参考C++代码:
class Solution {
public:
int findMaxConsecutiveOnes(vector<int>& nums) {
int maxcount=0;
int curcount=0;
for(int i=0;i<nums.size();i++){
if(nums[i]==1){
curcount++;
if(curcount>maxcount) maxcount=curcount;
}
if(nums[i]==0){
if(curcount>maxcount) maxcount=curcount;
curcount=0;
}
}
return maxcount;
}
};