这篇文章主要介绍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 ans
if __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的个数”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/nickhuang1996/blog/4956517