LeetCode题解---<485.最大连续1的个数>
文章目录
- 题目
- 代码及注释
- 关键
题目
给定一个二进制数组 nums , 计算其中最大连续 1 的个数。
示例 1:
输入:nums = [1,1,0,1,1,1]
输出:3
解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.
示例 2:
输入:nums = [1,0,1,1,0,1]
输出:2
提示:
1 <= nums.length <= 105
nums[i] 不是 0 就是 1。
代码及注释
class Solution(object):def findMaxConsecutiveOnes(self, nums):""":type nums: List[int]:rtype: int"""num = 0 #最终最大连续1的个数num1 = 0 #存储每一次寻找的连续1的个数l = len(nums) #数组长度i = 0 #初始索引while i < l: #开始遍历,从数组第一个元素开始if nums[i] == 1: #判断元素是否为1num1 += 1 #当元素为1的时候,当前连续1的个数+1num = max(num1,num) #更新最大值i += 1 #i + 1else: #当元素为0的时候num1 = 0 #当前连续1的个数重置为0i += 1 #i + 1 继续向后遍历return num #最终返回最大连续1的个数
关键
我认为该题关键在于设置一个存储最大连续1的个数的变量以及设置一个存储当前最大连续1的个数的变量,特别是后者,用于在每一次遍历里面存储当前的最大连续1的个数,最终通过比较得出最终的最大连续1的个数。