485. Max Consecutive Ones
题目:
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 and 1.
The length of input array is a positive integer and will not exceed 10,000
解法:
O(n):类似于DP,对于数组中每个数记录到该位置时最大的连续1的个数,如果某位置的数为0,则清零,然后输出最大的连续1数目。
class Solution {
public:
int findMaxConsecutiveOnes(vector<int>& nums) {
int maxSum = 0;
int curSum = 0;
for(int i = 0;i < nums.size();i++)
{
if(nums[i] == 1)
{
curSum++;
}
else
curSum = 0;
if(maxSum < curSum)
maxSum = curSum;
}
return maxSum;
}
};