485. Max Consecutive Ones
Given a binary array, find the maximum number of consecutive 1s in this array.
Example 1:
Input: [1,1,0,1,1,1]
Output: 3
Explanation: The first two digits or the last three digits are consecutive 1s.
The maximum number of consecutive 1s is 3.
解1:
看到题目的第一眼想到了栈的结构,添加元素,当碰到0 的时候清空栈。
第一回代码没有考虑到数组最后一个数的时候。
最后取巧在循环推出以后,再加一个长度判断。
class Solution(object):
def findMaxConsecutiveOnes(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
rst = []
length = []
for i in nums:
if i == 0 :
length.append(len(rst))
rst = []
else:
rst.append(i)
length.append(len(rst))
return max(length)
解2:
不需要判断长度也不需要入栈
class Solution(object):
def findMaxConsecutiveOnes(self, nums):
cnt = 0
ans = 0
for num in nums:
if num == 1:
cnt += 1
ans = max(ans, cnt)
else:
cnt = 0
return ans