1、从头到尾遍历数组,用变量count记录连续1的个数。
2、遇到1则count加一,遇到0清空count并且将该值记录下来并跟之前最大连续1的个数相比较,所以增加变量result来记录最大连续1的个数。
3、指针到数组最后一位时,再次比较count与result的值。
伪代码:
if nums is null or nums.length == 0:
return 0
count = 0
result = 0
for(i = 0; i < nums.length; i++)
if nums[i] == 1:
count = count + 1
else:
result = max(result, count)
count = 0
return max(result, count)
python代码:
def findMaxConsecutiveOnes(self, nums: List[int]) -> int:
if nums is None or len(nums) == 0:
return 0
count = 0 if nums[0] == 0 else 1
result = count
for i in range(1, len(nums)):
if nums[i] == 1:
count += 1
else:
result = max(result, count)
count = 0
result = max(result, count)
return result