( 数组和矩阵) 485. 最大连续 1 的个数 ——【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

    <

    =

    n

    u

    m

    s

    .

    l

    e

    n

    g

    t

    h

    <

    =

    1

    0

    5

    1 <= nums.length <= 10^5

    1<=nums.length<=105

  • nums[i] 不是 0 就是 1.

💡思路:

直接遍历就行!

🍁代码:(Java、C++)

Java

class Solution {
    public int findMaxConsecutiveOnes(int[] nums) {
        int ans = Integer.MIN_VALUE;
        int cur = 0;
        for(int num : nums){
            if(num == 0){
                ans = Math.max(cur, ans);
                cur = 0;
            }else{
                cur++;
            }
        }
        return Math.max(cur, ans);
    }
}

C++

class Solution {
public:
    int findMaxConsecutiveOnes(vector<int>& nums) {
        int ans = 0, cur = 0;
        for(int num : nums){
            if(num == 0){
                ans = max(cur, ans);
                cur = 0;
            }else{
                cur++;
            }
        }
        return max(cur, ans);
    }
};

🚀 运行结果:

在这里插入图片描述

🕔 复杂度分析:

  • 时间复杂度

    O

    (

    n

    )

    O(n)

    O(n),其中 n 是数组的长度。需要遍历数组一次。

  • 空间复杂度

    O

    (

    1

    )

    O(1)

    O(1)

题目来源:力扣。

放弃一件事很容易,每天能坚持一件事一定很酷,一起每日一题吧!
关注我 leetCode专栏,每日更新!

注: 如有不足,欢迎指正!

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>