LeetCode刷题485-简单-最大连续1的个数

160 阅读1分钟

「这是我参与2022首次更文挑战的第12天,活动详情查看:2022首次更文挑战」。 在这里插入图片描述 在这里插入图片描述

@[toc]

☀️ 前言 ☀️

算法作为极其重要的一点,是大学生毕业找工作的核心竞争力,所以为了不落后与人,开始刷力扣算法题!

🙀 作者简介 🙀

大家好,我是布小禅,一个尽力让无情的代码变得生动有趣的IT小白,很高兴能偶认识你,关注我,每天坚持学点东西,我们以后就是大佬啦!

这是我刷第 41/100 道力扣简单题

💗 一、题目描述 💗

给定一个二进制数组, 计算其中最大连续 1 的个数。

示例1:

输入:[1,1,0,1,1,1]
输出:3
解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.

提示:输入的数组只包含 0 和 1 。 输入数组的长度是正整数,且不超过 10,000

💁 二、题目解析 💁

思路1\color{green}{思路1:}

遍历一遍数组 定义两个变量,一个用于记录1的数量sum1,一个用来记录最大的1个数sum2 遇到1,sum1+1,遇到0,将sum1和sum2的最大值赋值给sum2,sum1清零

🏃 三、代码 🏃

☁️ 1️⃣. python ☁️

class Solution:
    def findMaxConsecutiveOnes(self, nums: List[int]) -> int:
        sum1,sum2 = 0, 0
        for i in nums:
            if i==1:
                sum1+=1
            else:
                sum2=max(sum2,sum1)
                sum1=0
        sum2=max(sum2,sum1)
        return sum2

❄️ 2️⃣. C# ❄️

public class Solution {
    public int FindMaxConsecutiveOnes(int[] nums)
        {
            int sum1 = 0;
            int sum2 = 0;
            foreach(int i in nums)
            {
                if (i == 1) sum1++;
                else
                {
                    sum2 = max(sum2, sum1);
                    sum1 = 0;
                }
            }
            return max(sum1, sum2);
        }
        public static int max(int a, int b)
        {
            if (a > b) return a;
            else return b;
        }

}

🌔 结语 🌔

坚持最重要,每日一题必不可少!:smile_cat:

期待你的关注和督促!:stuck_out_tongue:

在这里插入图片描述