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的个数。考虑存储一个数吧。
class Solution { public: int findMaxConsecutiveOnes(vector<int>& nums) { int sum = 0; int max=0; for(int i = 0; i != nums.size(); ++i) { if(nums[i] != 0) { sum+=nums[i]; } else { max = max > sum ? max : sum; sum=0; } } return max>sum?max:sum;//考虑没有0的情况 } };
好像真的不是很简洁,去看了看discuss的代码= =!!,真的有点差距
贴一个比较赶脚直观的吧
int findMaxConsecutiveOnes(vector<int>& nums) { int max_cnt = 0, cnt = 0; for (auto n : nums) { if (n == 1) max_cnt = max(++cnt, max_cnt); else cnt = 0; } return max_cnt; }