题目:
Given a binary array, find the maximum number of consecutive 1s in this array.
Example 1:
Input: [1,1,0,1,1,1] Output: 3 Explanation: The first two digits or the last three digits are consecutive 1s. The maximum number of consecutive 1s is 3.
Note:
- The input array will only contain
0
and1
. - The length of input array is a positive integer and will not exceed 10,000
翻译:
给定一个二进制数组,找到数组中连续的 1 出现的最大个数。
例子 1:
输入: [1,1,0,1,1,1] 输出: 3 解释: 前两个数字和后三个数字都满足连续的1。 最大的连续 1 的个数为3。
Note:
- 输入数组只能包含 0 和 1 。
- 输入的数组长度是一个证书并且不超过10,000。
思路:
每找到一个连续的 1 都记录它的长度并将大的结果记录。
C++代码(Visual Studio 2017):
#include "stdafx.h"
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
class Solution {
public:
int findMaxConsecutiveOnes(vector<int>& nums) {
int max_c=0 ;
int count = 0;
for (auto num : nums) {
if (num == 1)
max_c = max(max_c,++count);
else
count = 0;
}
return max_c;
}
};
int main()
{
Solution s;
vector<int> nums = { 1,1,0,1,1,1 };
int result;
result = s.findMaxConsecutiveOnes(nums);
cout << result;
return 0;
}