leetcode(刷题第一天)——485. 最大连续1的个数

数据结构 

数组

485. 最大连续1的个数

 

 解题思路:

    首先得知道目的是什么?目的就是取出一个数组中最大连续1的个数

    知道这个就肯定会有for循环进行遍历,也会知道肯定有一个用变量来实现的计数器

    for循环是一个一个遍历的如果,遍历到的数等于1,计数器就+1

    如果遍历到是0就把计数器的值赋给另一个变量来接收存储

    最后返回的是他们两个遍历后最大的值。

    考虑完这些之后就要将代码严谨化了

    首先得判断传过来的值是否是空的,这个数组长度是否是0这样的情况

    如果是就返回一个0获取其他的,比如:一个字符串或者是None

 

class Solution:
                                # 静态语句把nums定义为一个数组
    def findMaxConsecutiveOnes(self, nums: List[int]) -> int:
        # 判断nums是否为空或者nums的长度是否为0
        if nums is None or len(nums) == 0:
            return 0
        # 统计每次碰到1就记录1的次数
        count = 0
        # 保存最终的结果,那个最大就保存到result里面去
        result = 0
        # 通過for循环遍历nums这个数组
        for num in nums:
            # 如果这个值是1,count就加1
            if num == 1:
                count += 1
            # 如果是0,就找出谁是最大值进行保存,再将count清空重新遍历直到遍历完成
            else:
               # 这里考虑到最大值的问题就是为了防止出现,result被覆盖的情况
               # 谁最大就存储那个,比如:result比count大就存储result
               result = max(count, result)
               count = 0
            # 最后将最大值进行返回
        return max(count, result)
if __name__ == "__main__":
    a = Solution()
    b = [1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1]
    print(a.findMaxConsecutiveOnes(b))

  

如有看不懂或没有理解,请评论或私信我

 

posted @ 2020-12-04 08:52  漫天鑫  阅读(48)  评论(0)    收藏  举报