给你一个二进制的数组,找出该数组中连续出现的1的最大值
例如:
输入:[1,1,0,1,1,1]
输出:3
解释:前两位数字或后三位数字是连续的1。所以连续1的最大数量是3
注意:
1.输入的数组中仅包含0和1
2.输入数组的长度为正整数,并且长度不超过10000
解法1:
def findMaxConsecutiveOnes(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
count = 0
maxLen = 0
for i in nums:
if i == 1:
count += 1
else:
count = 0
if count > maxLen:
maxLen = count
return maxLen
方法1.简单,快捷,直接在list上做处理。在leetcode上跑用时92ms,效率还可以
方法2: maxLenth = 0 #python中将一个全部为int的list 转化为str的list #1.nums = [str(i) for i in a] nums = map(str,nums) s = ''.join(nums) slist = s.split("0") for i in slist: if len(i) > maxLenth: maxLenth = len(i) return maxLenth
该方法因为多了许多类型之间的转换,跑起来效率一般,用时166ms,在提交用户中算是比较差的。不过,上面list[int]转换为list[str]值得学习下,没准哪天用的到呢