千家信息网

leetcode如何计算最大连续1的个数

发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,这篇文章主要介绍leetcode如何计算最大连续1的个数,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、题目内容给定一个二进制数组, 计算其中最大连续 1 的个数。示例:输入
千家信息网最后更新 2025年01月24日leetcode如何计算最大连续1的个数

这篇文章主要介绍leetcode如何计算最大连续1的个数,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

一、题目内容

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

示例:

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

提示:

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

二、解题思路

1.直接记录长度然后每次比较大小即可;

2.滑动窗口,每次增加窗口长度,直到为0则记录长度并比较当前最大的长度,然后重新从为1的地方开始记录长度,如此反复比较即可;

三、代码

class Solution:    def findMaxConsecutiveOnes1(self, nums: list) -> int:        count = 0        ans = 0        for num in nums:            if num == 1:                count += 1                ans = max(ans, count)            else:                count = 0        return ans    def findMaxConsecutiveOnes2(self, nums: list) -> int:        left, right = 0, 0        ans = 0        while right < len(nums):            if nums[right] == 1:                right += 1            else:                ans = max(ans, right - left)                right += 1                left = right        ans = max(ans, right - left)        return ansif __name__ == '__main__':    s = Solution()    nums = [1, 1, 0, 1, 1, 1]    ans1 = s.findMaxConsecutiveOnes1(nums)    print(ans1)    ans2 = s.findMaxConsecutiveOnes2(nums)    print(ans2)

以上是"leetcode如何计算最大连续1的个数"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

0