【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/

猜你喜欢

转载自blog.csdn.net/weixin_39190382/article/details/108456834