一、题目描述
给定一个二进制数组, 计算其中最大连续 1 的个数。
- 输入的数组只包含0和1 。
- 输入数组的长度是正整数,且不超过10000。
二、完整代码
def findMaxConsecutiveOnes(nums):
count = result = 0 #count用来记录每段连续1的个数
#result用来存放每个阶段最大连续1的个数
for i in nums:
if i==1:
count += 1 #遍历到的数为1时,接着计数+1
else:
#遍历到的数不为1时,比较此时result和count的值
#将其中大的赋值给result
result = max(result,count)
count =0 #计数归零
return max(result,count)
我的代码注释写的很详细,大家可以看注释哦。
三、补充说明
需要注意的地方是,最后return的是max(result,count),而不能直接rerurn result。这是为什么呢?
如果数组最后一个元素是1,遍历完成,程序是不会执行result = max(result,count)这行语句。那最后return的result就不是最终结果,而是上一个阶段保存的result,这个值并没有和最后阶段的count值进行比较,所以不能保证是最大的。
说了这么多不知道大家听懂了没?
四、总结反思
刷题的乐趣和解开一道数学难题一样,很有成就感。大家如果有什么没听明白的地方记得找小赵同学哦~~欧耶