、给定一个二进制数组, 计算其中最大连续 1 的个数。
示例:
输入:[1,1,0,1,1,1]
输出:3
解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3
思路:遍历数组,首先定义两个变量用来计算前一次的最大连续的个数,后之后那个连续的个数,如果后一个连续的个数>前一个连续的个数,就把前一个连续的个数替换成后一个的值,然后后一个值再值为零,继续后面的遍历
int findMaxConsecutiveOnes(int* nums, int numsSize)
{int max = 0;//记录后一个连续的个数,刚开始的时候为0int count = 0;//记录前一个连续的个数,刚开始的时候也为0int 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;
}