485. 最大连续1的个数

  

思路:

1、处理好len(nums) < 2时的情形;
2、用指针i遍历nums,用ans[]存放每一串连续1的长度,用计数器count记录:
i指向的是1则计数器加1;
i指向的不是1且前一位是1,则将计数器值添加到ans[]中,并清空计数器;
3、返回max(ans)。

 1 class Solution(object):
 2     def findMaxConsecutiveOnes(self, nums):
 3         """
 4         :type nums: List[int]
 5         :rtype: int
 6         """
 7         count = 1 if nums[0] == 1 else 0
 8         ans = []
 9         if len(nums) == 1:
10             ans.append(count)
11         for i in range(1, len(nums)):
12             if nums[i] == 1:
13                 count += 1
14             elif nums[i - 1] == 1 and nums[i] != 1:
15                 ans.append(count)
16                 count = 0
17             if i == len(nums) - 1:
18                 ans.append(count)
19         return max(ans)
20 
21 
22 if __name__ == '__main__':
23     solution = Solution()
24     print(solution.findMaxConsecutiveOnes([1, 1, 0, 1, 1, 1]))

  

原文地址:https://www.cnblogs.com/panweiwei/p/12757679.html