【leetcode】485. 最大连续 1 的个数
给定一个二进制数组 nums , 计算其中最大连续 1 的个数。
示例 1:
输入:nums = [1,1,0,1,1,1]
输出:3
解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.
示例 2:
输入:nums = [1,0,1,1,0,1]
输出:2
提示:
1 <= nums.length <= 105
nums[i] 不是 0 就是 1.
解题思路:
初始化两个变量,count,Maxcount,将设将数组按照0,切分为多个部分,count存放每每个部分1的个数,Maxcount存放的是最大次数
代码:
C:
int findMaxConsecutiveOnes(int* nums, int numsSize){
int count = 0;
int Maxcount = 0;
for(int i = 0; i < numsSize; i++)
{
if(nums[i] == 1)
count++;
else
{
Maxcount = fmax(Maxcount, count);
count = 0;
}
}
Maxcount = fmax(Maxcount, count);
return Maxcount;
}
备注:
fmax(a, b) 返回两个浮点参数a, b中较大的一个