zoukankan      html  css  js  c++  java
  • 每日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
    • 时间复杂度:O(n)O(n),其中 nn 是数组的长度。需要遍历数组一次。

    • 空间复杂度:O(1)O(1)。

    关于enumerate函数: 

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

    enumerate(sequence, [start=0])
    • sequence -- 一个序列、迭代器或其他支持迭代对象。
    • start -- 下标起始位置。
  • 相关阅读:
    Jenkins, How to Start, Stop or Restart your Instance
    Windows Batch: Remove file extension
    download web folder using wget
    Mac OS 下 控制台的代理设定
    Elasticsearch 配置IP白名单
    Elasticsearch 开启安全认证
    Redis安装手册
    laravel 使用自带的用户注册登录功能并修改登录方式
    go 安装环境
    laraveladmin 使用
  • 原文地址:https://www.cnblogs.com/LLLLgR/p/14725466.html
Copyright © 2011-2022 走看看