题目:
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
代码:
别人的:
class Solution {
public:
int findMaxConsecutiveOnes(vector<int>& nums) {
int count = 0, max = 0;
for (int i = 0; i < nums.size(); i++) {
if (nums[i] == 1 && (!i || nums[i - 1] != 1)) count = 1;
else if (i && nums[i] == 1 && nums[i - 1] == 1) count++;
if (max < count) max = count;
}
if (max < count) max = count;
return max;
}
};
自己的:
class Solution {
public:
int findMaxConsecutiveOnes(vector<int>& nums) {
int result = 0;
int tem = 0;
nums.push_back(0);
for (auto c : nums){
if(c == 0){
if ( tem > result)
result = tem;
tem = 0;
}
else
tem++;
}
return result;
}
};