【LeetCode】【数组】题号:485,最大连续1的个数

every blog every motto: You will never know unless you try

0. 前言

废话: 很久之前零星有玩过leetcode,但无章法可言,这次正好要用C++做点东西,索性刷刷题。
提要:
本系列博客主要记录刷leetcode之路,想法由来已久,一直没动手(包括本篇文章),有想法要立刻动手,拖时间久了就没有当初的那股劲了。


说明:

  • 为了更好的掌握题目的本质,同时为了避免之前“东一榔头西一棒子”的混乱现象,本次刷题为分类刷题
  • 在每个分类之前附上将要刷的题目
  • 最近一段时间比较忙,可能刷题频率不会那么快。
  • 本次刷题,以追求刷完为目的,即记录笔者的一般解法,可能并非最优。

注: 语言:c++


此次刷题为数组:

在这里插入图片描述

1. 正文

1.1 题目

题目: 给定一个二进制数组,计算其中最大连续1的个数。
例:
输入:[1,1,0,1,1,1]
输出:3

1.2 题解

class Solution {
public:
    int findMaxConsecutiveOnes(vector<int>& nums) {

        int max = 0; // 最大连续1的个数
        int count = 0; // 记录连续1的个数

        for(size_t i = 0;i<nums.size();i++)
        {   
            
            if(nums[i]==1) // 
            {
                count++;
                // 比较大小
                max = (max>count)?max:count;
            }
            else
            {   
                count = 0; // 如果不连续,count归零
            }
        }
        return max;
    }
};

1.3 提交结果

在这里插入图片描述

说明: 代码与评论区的一位题主的代码类似,但是我的时间和空间的消耗都较大。

参考文献

[1] https://leetcode-cn.com/problems/max-consecutive-ones/
[2] https://leetcode-cn.com/circle/article/48kq9d/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胡侃有料

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值