485. 最大连续 1 的个数
1 题目描述
给定一个二进制数组, 计算其中最大连续 1 的个数。
2 示例描述
输入:[1,1,0,1,1,1]
输出:3
解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.
3 解题提示
输入的数组只包含 0 和 1 。
输入数组的长度是正整数,且不超过 10,000。
4 解题思路
遍历数组就能全部解出。
5 源码详解(C++)
class Solution {
public:
int findMaxConsecutiveOnes(vector<int>& nums) {
int res = 1 ;
int count = 1 ;
int count_0 = 0 ;
for ( int i = 0 ; i < nums.size() - 1 ; i ++ )
{
if ( nums[i] == 1 && nums[i + 1] == 1)
{
count ++ ;
}
else
{
count = 1 ;
}
if ( res < count )
{
res = count ;
}
}
for ( int i = 0 ; i < nums.size() ; i ++ )
{
if ( nums[i] == 0 )
{
count_0 ++ ;
}
}
if ( count_0 == nums.size() )
{
return 0;
}
return res ;
}
};