其他分享
首页 > 其他分享> > 每日leetcode-数组-485 最大连续1的个数

每日leetcode-数组-485 最大连续1的个数

作者:互联网

分类:数组 之 数组遍历

 

给定一个二进制数组, 计算其中最大连续 1 的个数。

 

思路:

为了得到数组中最大连续 11 的个数,需要遍历数组,并记录最大的连续 11 的个数和当前的连续 11 的个数。如果当前元素是 11,则将当前的连续 11 的个数加 11,否则,使用之前的连续 11 的个数更新最大的连续 11 的个数,并将当前的连续 11 的个数清零。

遍历数组结束之后,需要再次使用当前的连续 11 的个数更新最大的连续 11 的个数,因为数组的最后一个元素可能是 11,且最长连续 11 的子数组可能出现在数组的末尾,如果遍历数组结束之后不更新最大的连续 11 的个数,则会导致结果错误。

class Solution:
    def findMaxConsecutiveOnes(self, nums: List[int]) -> int:
        Maxcount=count=0
        for i,num in enumerate(nums):
            if num ==1:
                count +=1
            else:
                Maxcount=max(Maxcount,count)
                count = 0 
        Maxcount=max(Maxcount,count)
        return Maxcount

 

关于enumerate函数: 

在字典上时枚举、列举的意思,可以直接既遍历索引又遍历元素。

enumerate(sequence, [start=0])

 

标签:11,遍历,个数,连续,数组,Maxcount,485,leetcode
来源: https://www.cnblogs.com/LLLLgR/p/14725466.html