zoukankan      html  css  js  c++  java
  • [LeetCode]485. Max Consecutive Ones 找到最大的连续的1的个数

    题目描述

    输入只有0和1的数组(长度为正整数,且<10000),找到最大的连续1的个数
    比如[1,1,0,1,1,1],输出3

    思路

    遍历数组,统计当前连续个数curCount和最大连续值maxCount。If当前数组值为1,则curCount++;否则(值为0)比较curCount和maxCount,看是否需要替换,并把curCount置0
    最后返回maxCount

    错误:对于[1]这种边界条件没有考虑完全。这种时候上面的逻辑会输出0,而应该是1。也就是结束的时候需要增加一个比较,万一如果最后的连续1的个数比较多。

    ——解决:在遍历完,返回之前,增加一个[比较curCount和maxCount,看是否需要替换]。

    代码

    public class Solution {
        public int findMaxConsecutiveOnes(int[] nums) {
            int curCount=0,maxCount=0;
            
            for(int n: nums){
                if(n==1)
                    curCount++;
                else{
                    if(curCount>maxCount)
                        maxCount=curCount;
                    curCount=0;
                }
            }
            if(curCount>maxCount)
                        maxCount=curCount;
            return maxCount;
        }
    }
    
  • 相关阅读:
    [HAOI2015]T2
    bzoj1036:[ZJOI2008]树的统计Count
    苹果树
    poj1151 Atlantis
    1593: [Usaco2008 Feb]Hotel 旅馆
    [JSOI2008]最大数maxnumber
    【HNOI2014】米特运输
    【HNOI2013】数列
    Luogu5221 Product
    【CQOI2014】数三角形
  • 原文地址:https://www.cnblogs.com/FannyChung/p/6693365.html
Copyright © 2011-2022 走看看