[LeetCode]485. Max Consecutive Ones 解题报告(C++)

本文针对LeetCode上的485.MaxConsecutiveOnes题目提供了一种高效的C++解决方案。该算法通过一次遍历数组来找出二进制数组中连续1的最大数量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[LeetCode]485. Max Consecutive Ones 解题报告(C++)

题目描述

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.

Note:

  • The input array will only contain 0 and 1.
  • The length of input array is a positive integer and will not exceed 10,000

题目大意

  • 给定一个二进制的数组,找到连续1出现的最大次数

解题思路

  • 遍历数组.
  • 遇到1,cnt++.遇到0,则需要重置cnt.
  • 每次更新 res

代码实现:

int findMaxConsecutiveOnes(vector<int>& nums) {

    int result = 0;
    int tmp = 0;
    for (auto x : nums) {
        if (x == 1) {
            tmp += 1;
        }
        else {
            tmp = 0;
        }
        if (tmp > result) {
            result = tmp;
        }
        // result = max(reslut,tmp);
    }
    return result;

}

小结

  • 注意遍历数组的方法 auto x:nums .不需要索引信息的时候.可以使用这个.
  • 注意 max 的使用.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值