给定一个二进制数组, 计算其中最大连续1的个数。
示例 1:
输入: [1,1,0,1,1,1]
输出: 3
解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3.
注意:
输入的数组只包含 0 和1。
输入数组的长度是正整数,且不超过 10,000。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/max-consecutive-ones
思路:首先遍历数组,把连续的1用count记录下来,如果是0,count清0;接着比较count和max的大小,如果count>max,就把新的count赋值给max,继续遍历,直到跳出循环。
#include <stdio.h>
int findMaxNum(int *nums,int numsSize){
if(numsSize==0){
return 0;
}
int count=0,max=0;
for(int i=0;i<numsSize;i++){
if(nums[i]==1){
count++;
}else {
count=0;
}
if(max<count){
max=count;
}
}
return max;
}
int main(){
int nums[] ={ 1,1,0,1,1,1} ;
int numsSize =sizeof(nums)/sizeof(int);
int res =findMaxNum(nums,numsSize);
printf("%d\n",res);
return 0;
}