跳至主要內容

0485. 最大连续 1 的个数

ITCharge大约 1 分钟

0485. 最大连续 1 的个数open in new window

  • 标签:数组
  • 难度:简单

题目链接

题目大意

描述:给定一个二进制数组 numsnums, 数组中只包含 0011

要求:计算其中最大连续 11 的个数。

说明

  • 1nums.length1051 \le nums.length \le 10^5
  • nums[i]nums[i] 不是 00 就是 11

示例

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

解题思路

思路 1:一次遍历

  1. 使用两个变量 cntcntansanscntcnt 用于存储当前连续 11 的个数,ansans 用于存储最大连续 11 的个数。
  2. 然后进行一次遍历,统计当前连续 11 的个数,并更新最大的连续 11 个数。
  3. 最后返回 ansans 作为答案。

思路 1:代码

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

思路 1:复杂度分析

  • 时间复杂度O(n)O(n)
  • 空间复杂度O(1)O(1)