题目描述:
给定一个二进制数组, 计算其中最大连续1的个数。
示例 1:
输入: [1,1,0,1,1,1]
输出: 3
解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3.
注意:
- 输入的数组只包含
0
和1
。 - 输入数组的长度是正整数,且不超过 10,000。
解题思路:
本题主要是判断连续1的个数,我们可以对数组中连续的1进行统计,然后比较连续1最多的即为所求解。我感觉自己这里的求连续1个数并比较的的操作还是比较好的:在数组依次统计过程中,如果为1将临时统计数增加,并和最大连续1的个数比较,较大者为赋为最大连续1的个数,遇0则将临时统计数清零。最终得到的结果为最大连续1的个数。
AC代码:
class Solution {
public:
int findMaxConsecutiveOnes(vector<int>& nums)
{
int MaxRes = 0;
for (int i = 0; i < nums.size(); i++)
{
int Temp = 0;
while(i<nums.size()&&nums[i++]==1)Temp++;
MaxRes = max(Temp, MaxRes);
i--;
}
return MaxRes;
}
};