leetcode-485:最大连续1的个数

简介: leetcode-485:最大连续1的个数

题目

题目链接

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

示例:

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

解题

方法一:一次遍历(常规的思路)

max_num是最大的连续1的个数,tmp为当时的连续1的个数。由于最后结束还可能是1,循环内的tmp还没和max_num比,于是循环结束后,最后还要比一次,取最大的。

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

方法二:一次遍历(保存遇到的最后一个 0 的位置)

i - index来表示当前连续1的个数,十分巧妙

class Solution(object):
    def findMaxConsecutiveOnes(self, nums):
        index = -1
        res = 0
        for i, num in enumerate(nums):
            if num == 0:
                index = i
            else:
                res = max(res, i - index)
        return res
相关文章
|
6月前
|
算法 测试技术
LeetCode-1004. 最大连续1的个数 III
LeetCode-1004. 最大连续1的个数 III
【剑指offer】-最小K个数-28/67
【剑指offer】-最小K个数-28/67
|
6月前
LeetCode 1550. 存在连续三个奇数的数组
LeetCode 1550. 存在连续三个奇数的数组
44 0
【LeetCode】1171. 从链表中删去总和值为零的连续节点、面试题 02.05. 链表求和
目录 1171. 从链表中删去总和值为零的连续节点 面试题 02.05. 链表求和
50 0
|
6月前
【力扣】485.最大连续 1 的个数
【力扣】485.最大连续 1 的个数
|
6月前
1004.最大连续1的个数
1004.最大连续1的个数
30 0
|
6月前
每日一题(最大连续1的个数,完全数计算)
每日一题(最大连续1的个数,完全数计算)
31 0
|
算法
【算法专题突破】双指针 - 最大连续1的个数 III(11)
【算法专题突破】双指针 - 最大连续1的个数 III(11)
34 0
Leetcode——485. 最大连续 1 的个数
文章目录 1、题目 2、滑动窗口 3、一次遍历(官方题解)
Leetcode——485. 最大连续 1 的个数
剑指offer 41. 最小的k个数
剑指offer 41. 最小的k个数
71 0