栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

leetcode

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

leetcode

leetcode_数组:485

  • 485. 最大连续 1 的个数
    • 我的代码
    • 别人的优解
    • 总结与反思:

485. 最大连续 1 的个数

> **485. 最大连续 1 的个数 给定一个二进制数组, 计算其中最大连续 1 的个数。  
**>  示例: 输入:[1,1,0,1,1,1] 输出:3** 
解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.   
提示: 输入的数组只包含 0 和 1 。

我的代码

class Solution(object):
    
   
    
    def findMaxConsecutiveOnes(self, nums):
        num_list=list()
        max_list=list()
        for a in nums:
            if a==1:
                num_list.append(a)
            else:
                max_list.append(num_list.count(1))
                num_list=[]
        max_list.append(num_list.count(1))   #   for的null check
        num_list=[]
        return max(max_list)

别人的优解

class Solution:
    def findMaxConsecutiveOnes(self, nums):
        ret = count = 0
        nums.append(0)
        for i in nums:
            if i == 1:
                count += 1
            else:
                ret = max(ret, count)
                count = 0
        return ret

作者:qingfengpython
链接:https://leetcode-cn.com/problems/max-consecutive-ones/solution/485zui-da-lian-xu-1de-ge-shu-yi-ci-bian-jkt8i/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
分析
这里我们需要初始化两个ret、count两个int类型的变量。

count用于记录在数组中某一段连续1的数量
当这段1遇到0时,此时我们ret = max(ret,count)比较,将ret更新为更大的连续1数量
count重置为0 ,然后开启下一次循环
这里要注意下,如果数组以1结果会导致缺失最后一次比较,所以在结尾需要在进行一次比较操作即可。
PS: 由于Java数组追加较为麻烦,Python可以给数组append一个0,避免4操作。


总结与反思:

  1. 我对数组的思路上来就是在python里的数组问题统一用list列表知识来解决。
  2. 别人的优化之处:
    a.求连续更迭的最值问题,我的最初思路是将所有经过更迭的最大值用一个独立列表max_list来装入,最后用max(list)。
    而别人用更简单的int变量来统计次数,无论是直接用count来直接统计1的个数,更是ret = max(ret,count)比较,将ret为更 大的连续1数量。
    b.在此处比较简单的题,是可以用他的优化,但是要是统计较为复杂的迭代最值,我的list思路没错。
    3.在此类题,都遇到了python的for循环遍历并没有检查为null之后在执行一次的操作的问题(即python中for遍历完遇到list边界的null之后直接结束),如果1为list结尾的话会照成少更迭一次最值。解决这个问题,我采用了直接在for循环之后再执行一次最大值更迭的代码块,而他很优化地用了直接list.append(0)来在for循环里保证不会撞null墙导致少更迭的情况
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/268387.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号