、给定一个二进制数组, 计算其中最大连续 1 的个数。
示例:
输入:[1,1,0,1,1,1]
输出:3
解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3
思路:遍历数组,首先定义两个变量用来计算前一次的最大连续的个数,后之后那个连续的个数,如果后一个连续的个数>前一个连续的个数,就把前一个连续的个数替换成后一个的值,然后后一个值再值为零,继续后面的遍历
int findMaxConsecutiveOnes(int* nums, int numsSize)
{
int max = 0;//记录后一个连续的个数,刚开始的时候为0
int count = 0;//记录前一个连续的个数,刚开始的时候也为0
int i = 0;
for (i = 0; i < numsSize; i++)
{
if (nums[i] == 1)
{
count++;
}
else
{
max = count > max ? count : max;
count = 0;
}
}
max = count > max ? count : max;//因为可能到了最后一个元素的时候是1,上面的判断语句就进不去,只有在这里在判断一次
return max;
}