码迷,mamicode.com
首页 > 其他好文 > 详细

485. Max Consecutive Ones最长的连续1的个数

时间:2018-04-20 23:31:11      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:ace   git   思路   最大   nbsp   奇葩   画图   为什么   maximum   

[抄题]:

Given a binary array, find the maximum number of consecutive 1s in this array.

Example 1:

Input: [1,1,0,1,1,1]
Output: 3
Explanation: The first two digits or the last three digits are consecutive 1s.
    The maximum number of consecutive 1s is 3.

 [暴力解法]:

用temp,result,结果发现写起来很麻烦

时间分析:

空间分析:

 [优化后]:

时间分析:

空间分析:

[奇葩输出条件]:

[奇葩corner case]:

[思维问题]:

[一句话思路]:

还是局部最大值+全局最大值的思路。用三元表达式解决局部变量的连续和中断问题

[输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入):

[画图]:

[一刷]:

  1. 是maxHere + 1 统计,不是n + 1,这是是乐至?

[二刷]:

[三刷]:

[四刷]:

[五刷]:

  [五分钟肉眼debug的结果]:

[总结]:

三元表达式解决局部变量的连续和中断问题

[复杂度]:Time complexity: O(n) Space complexity: O(1)

[英文数据结构或算法,为什么不用别的数据结构或算法]:

[关键模板化代码]:

[其他解法]:

[Follow Up]:

487. Max Consecutive Ones II 好像不是数学就是两根指针吧

[LC给出的题目变变变]:

 [代码风格] :

技术分享图片
class Solution {
    public int findMaxConsecutiveOnes(int[] nums) {
        //cc
        if (nums == null || nums.length == 0) {
            return 0;
        }
        
        //ini
        int max = 0;
        int maxHere = 0;
        
        //for loop
        for (int n : nums) {
            max = Math.max(max, maxHere = n == 0 ? 0 : maxHere + 1);
        }
        
        //return
        return max;
    }
}
View Code

 

485. Max Consecutive Ones最长的连续1的个数

标签:ace   git   思路   最大   nbsp   奇葩   画图   为什么   maximum   

原文地址:https://www.cnblogs.com/immiao0319/p/8893855.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!