leetcode485——最大连续1的个数(easy)

一、题目描述

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

示例 1:

输入: [1,1,0,1,1,1]
输出: 3
解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3.

注意:

  • 输入的数组只包含 0 和1。
  • 输入数组的长度是正整数,且不超过 10,000。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/max-consecutive-ones

二、题解

方法一:基础法

此题很简单,当使用一个for循环遍历数组nums时,取一个元素nums[i],若nums[i]为1,则记录最大连续1个数的临时变量temp自增1,接下来比较temp与max的大小,若max<temp,则更新max,表明找到了最终的最大连续1个数。若nums[i]不为1,则表明连续1的序列中断了,重新将temp置为0。遍历数组结束后返回max的值即可。

完成时间:2020.05.07

class Solution:
    def findMaxConsecutiveOnes(self, nums: List[int]) -> int:

        temp, max = 0, 0
        for i in range(len(nums)):
            if nums[i] == 1:
                temp += 1
                max = temp if max < temp else max  # 三元运算符
            else:
                temp = 0
        return max

方法一使用了一趟循环:

时间复杂度:\(O(n)\)\(n\)指的是数组长度。
空间复杂度:\(O(1)\)

posted @ 2020-05-07 15:26  老潇的摸鱼日记  阅读(129)  评论(0编辑  收藏  举报