力扣485题 #最大连续 1 的个数

题目:

给定一个二进制数组, 计算其中最大连续 1 的个数。

示例:

输入:[1,1,0,1,1,1]
输出:3
解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.

分析:

该题应该定义两个变量,一个为计数器和一个表示结果,初始阶段都将值设置为0。
在遍历的过程中,如果遇到1,则给计数器加1;如果不是1(即0),则在计数器和结果中找一个最大值出来,然后再把计数器置为0,以方便后续继续使用。

代码:

Python

class Solution:
    def findMaxConsecutiveOnes(self, nums: List[int]):
        count = result = 0       #设置计数器和结果初始值
        for num in nums:
            if num == 1:
                count += 1          #见1就给计数器加1
            else:
                result = max(count,result    #见0就比较计数器和结果,取最大值
                count = 0            #计数器清零,(准备后面的计数)
        return max(count,result)          

Java

class Solution {
    public int findMaxConsecutiveOnes(int[] nums) {
        int count = 0;
        int result = 0;        //设置计数器和结果初始值
        for (int i =0; i<nums.length; i++){
            if(nums[i] == 1){
                count++;       //见1就给计数器加1
            }                           
            else{
                result = Math.max(result,count);   //见0就比较计数器和结果,取最大值
                count = 0;      //计数器清零,(准备后面的计数)
            }
        } 
        return Math.max(result,count);
    }
}

你可能感兴趣的:(力扣,算法,java,python,leetcode,数组)