要求:给定一个二进制数组, 计算其中最大连续1的个数。
示例:
输入: [1,1,0,1,1,1]
输出: 3
解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3.
源代码:
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
int findMaxConsecutiveOnes(vector<int>& nums)
{
int num = 0;
int max = 0;
for (int i = 0; i < nums.size(); i++)
{
if (nums[i] == 1)
{
num = 1;
for (int j = i + 1; j < nums.size(); j++)
{
if (nums[j] == 1)
{
num = num + 1;
}
else
{
break;
}
}
if (max < num)
{
max = num;
}
}
}
return max;
}
int main()
{
vector<int> A = {1,1,0,1,1,1};
int num = findMaxConsecutiveOnes(A);
for (int i = 0; i < A.size(); i++)
{
cout << A[i]<< endl;
}
cout << "连续为1的长度为:"<<num << endl;
system("pause");
return 0;
}
输出结果:
1
1
0
1
1
1
连续为1的长度为:3