【题目】
给定一个二进制数组, 计算其中最大连续1的个数。
【示例 1】
输入: [1,1,0,1,1,1]
输出: 3
解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3.
【注意】
输入的数组只包含 0 和1。
输入数组的长度是正整数,且不超过 10,000。
【代码】
class Solution {
public:
int findMaxConsecutiveOnes(vector<int>& nums) {
int len=0,maxlen=0,n=nums.size();
for(int i=0;i<n;i++)
if(nums[i]){
len++;
}else{
maxlen=max(maxlen,len);
len=0;
}
return max(maxlen,len);
}
};
【Python】巧用groupby
class Solution:
def findMaxConsecutiveOnes(self, nums: List[int]) -> int:
maxlen=-1
for _, group in groupby(nums):
temp=list(group)
print(temp)
if temp[0]==1:
maxlen=max(maxlen,len(temp))
if maxlen==-1:
return 0
return maxlen