加载中...
485-最大连续 1 的个数(Max Consecutive Ones)
发表于:2021-12-03 | 分类: 简单
字数统计: 733 | 阅读时长: 2分钟 | 阅读量:

原文链接: https://leetcode-cn.com/problems/max-consecutive-ones

英文原文

Given a binary array nums, return the maximum number of consecutive 1's in the array.

 

Example 1:

Input: nums = [1,1,0,1,1,1]
Output: 3
Explanation: The first two digits or the last three digits are consecutive 1s. The maximum number of consecutive 1s is 3.

Example 2:

Input: nums = [1,0,1,1,0,1]
Output: 2

 

Constraints:

  • 1 <= nums.length <= 105
  • nums[i] is either 0 or 1.

中文题目

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

 

示例:

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

 

提示:

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

通过代码

高赞题解

各位题友大家好! 今天是 @负雪明烛 坚持日更的第 22 天。今天力扣上的每日一题是「485. 最大连续1的个数」。

解题思路

今天的题目简单,我们直接分析思路:

  1. 可以对数组遍历一次,遍历时需要保存遇到的最后一个 $0$ 的位置 $index$;
  2. 如果遍历到 $i$ 位置的数字是 $0$,那么更新 $index$ 为当前位置 $i$;
  3. 如果遍历到 $i$ 位置的数字是 $1$,那么当前区间内共有 $i - index$ 个连续的 $1$;
  4. 记录遍历过程中所有连续的 $1$ 的长度的最大值。

对于题目给出的示例 [1,1,0,1,1,1],我做了动图帮助理解:

485.gif

动图对应的 PPT 如下,可以逐步点击观看:

<485.001.jpeg,485.002.jpeg,485.003.jpeg,485.004.jpeg,485.005.jpeg,485.006.jpeg,485.007.jpeg,485.008.jpeg,485.009.jpeg,485.010.jpeg,485.011.jpeg,485.012.jpeg>

代码

代码中的 $index$ 保存的是遍历到的最后的一个 $0$ 的位置,其默认值是 $-1$。

python 代码如下:

class Solution(object):
    def findMaxConsecutiveOnes(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        index = -1
        res = 0
        for i, num in enumerate(nums):
            if num == 0:
                index = i
            else:
                res = max(res, i - index)
        return res
  • 时间复杂度:$O(N)$
  • 空间复杂度:$O(1)$

刷题心得

今天的题也是个滑动窗口,但是我们只用保存最后一个 0 出现的位置就行,没必要套用双指针模板。


OK,以上就是 @负雪明烛 写的今天题解的全部内容了,如果你觉得有帮助的话,求赞、求关注、求收藏。如果有疑问的话,请在下面评论,我会及时解答。

关注我,你将不会错过我的精彩动画题解、面试题分享、组队刷题活动,进入主页 @负雪明烛 右侧有刷题组织,从此刷题不再孤单。

祝大家牛年大吉!AC 多多,Offer 多多!我们明天再见!

统计信息

通过次数 提交次数 AC比率
129476 212902 60.8%

提交历史

提交时间 提交结果 执行时间 内存消耗 语言

相似题目

题目 难度
最大连续1的个数 II 中等
最大连续1的个数 III 中等
上一篇:
483-最小好进制(Smallest Good Base)
下一篇:
486-预测赢家(Predict the Winner)
本文目录
本文目录