Given a binary array, find the maximum number of consecutive 1s in this array.
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.
Note:
- The input array will only contain
0
and1
. - The length of input array is a positive integer and will not exceed 10,000
代码1:
class Solution {
public:
int findMaxConsecutiveOnes(vector<int>& nums) {
int len = 0, maxlen = 0;
for(int num: nums){
if(num == 1){
len += 1;
}
if(num == 0){
if (len>maxlen){
maxlen = len;
}
len = 0;
}
}
if (len>maxlen){
maxlen = len;
}
return maxlen;
}
};
代码2:
class Solution {
public:
int findMaxConsecutiveOnes(vector<int>& nums) {
int maxcnt=0,cnt=0;
for(int i:nums){
if(i){cnt++;}
else{
if(cnt>maxcnt){maxcnt=cnt;}
cnt=0;
}
}
if(cnt>maxcnt){maxcnt=cnt;}
return maxcnt;
}
};
代码3:
int findMaxConsecutiveOnes(int* nums, int numsSize) {
int max = 0;
int sum = 0;
for (int i=0; i<numsSize; i++)
{
sum = (sum+nums[i])*nums[i];
if(max<sum){max=sum;}
}
return max;
}