题目要求:
给定一个二进制数组 nums , 计算其中最大连续 1 的个数。
示例 1:
输入:nums = [1,1,0,1,1,1]
输出:3
解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.
示例 2:
输入:nums = [1,0,1,1,0,1]
输出:2
做题代码:
int findMaxConsecutiveOnes(int* nums, int numsSize) {
int* index = (int*)malloc(sizeof(int) * numsSize);
int f = 0;
int i = 0;
//找到零的下标
for(i = 0;i < numsSize;i++)
{
if(nums[i] == 0)
{
index[f] = i;
f++;
}
}
//判断数组里是否有零
if(f != 0)
{
int* number_t = (int*)malloc(sizeof(int) * (10000));
int f_1 = 0;
number_t[f_1] = index[0] - 0;
f_1++;
for(i = 0;i < f - 1;i++)
{
number_t[f_1] = index[i + 1] - index[i] - 1;
f_1++;
}
number_t[f_1] = numsSize - index[f - 1] - 1;
f_1++;
int max = number_t[0];
for(i = 1;i < f_1;i++)
{
if(number_t[i] > max)
max = number_t[i];
}
return max;
}else{
return numsSize;
}
}