问题描述
给定一个二进制数组, 计算其中最大连续 1 的个数。
示例:
输入:[1,1,0,1,1,1]
输出:3
解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.提示:
输入的数组只包含 0 和 1 。 输入数组的长度是正整数,且不超过 10,000。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/max-consecutive-ones
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
思路分析及代码实现
这道题就是一道简单的双指针问题,根据右指针的移动判断是否是1,然后每移动一次比较长度,如果右指针所指不为0,将左指针拿过来放到右指针+1的位置,同时右指针也+1
class Solution:
def findMaxConsecutiveOnes(self, nums: List[int]) -> int:
n = len(nums)
left = 0
right = 0
res = 0
while right < n:
if nums[right] == 1:
right += 1
elif nums[right] == 0:
left = right + 1
right += 1
res = max(res, right-left)
return res

二进制数组中最大连续1子序列长度求解:双指针巧破难题
本文解析了如何通过双指针技巧解决LeetCode上的问题,计算给定二进制数组中最大连续1的个数。通过实例演示和代码实现,帮助理解算法思路并应用于实际编程。
757

被折叠的 条评论
为什么被折叠?



