【力扣】485.最大连续 1 的个数

简介: 【力扣】485.最大连续 1 的个数

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.

解题方法

  • C 遍历取最大
// #define MAX(a, b) ((a) > (b) ? (a) : (b)) // 取最大值

int my_max(int a, int b) {
    if (a > b)
        return a;
    else
        return b;
}

int findMaxConsecutiveOnes(int* nums, int numsSize) {
    int max_cnt = 0, cnt = 0; // 定义最大计数变量,计数变量
    for (int i = 0; i < numsSize; i++) {
        if (nums[i] == 1) {
            cnt++; // 对 1 计数
        } else {
            max_cnt = my_max(max_cnt, cnt); // 存储最大 1 的个数
            cnt = 0;                        // 重新计数
        }
    }
    max_cnt = my_max(max_cnt, cnt);
    return max_cnt;
}

复杂度分析

时间复杂度为 O(n),其中 n 是数组的长度。

空间复杂度为 O(1)。




相关文章
|
5月前
|
算法 测试技术
LeetCode-1004. 最大连续1的个数 III
LeetCode-1004. 最大连续1的个数 III
|
5月前
leetcode-485:最大连续1的个数
leetcode-485:最大连续1的个数
43 0
【剑指offer】-最小K个数-28/67
【剑指offer】-最小K个数-28/67
|
5月前
LeetCode 1550. 存在连续三个奇数的数组
LeetCode 1550. 存在连续三个奇数的数组
40 0
|
5月前
|
C语言
leetcode:191. 位1的个数
leetcode:191. 位1的个数
24 0
|
5月前
leetcode-191:位1的个数
leetcode-191:位1的个数
41 0
【力扣每日一题:2-19】1004. 最大连续1的个数 III【中等】
【力扣每日一题:2-19】1004. 最大连续1的个数 III【中等】
|
12月前
|
算法
【算法专题突破】双指针 - 最大连续1的个数 III(11)
【算法专题突破】双指针 - 最大连续1的个数 III(11)
31 0
Leetcode——485. 最大连续 1 的个数
文章目录 1、题目 2、滑动窗口 3、一次遍历(官方题解)
Leetcode——485. 最大连续 1 的个数
剑指offer 41. 最小的k个数
剑指offer 41. 最小的k个数
67 0