【题目】 给定一个二进制数组, 计算其中最大连续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