「这是我参与2022首次更文挑战的第12天,活动详情查看:2022首次更文挑战」。
@[toc]
☀️ 前言 ☀️
算法作为极其重要的一点,是大学生毕业找工作的核心竞争力,所以为了不落后与人,开始刷力扣算法题!
🙀 作者简介 🙀
大家好,我是布小禅,一个尽力让无情的代码变得生动有趣的IT小白,很高兴能偶认识你,关注我,每天坚持学点东西,我们以后就是大佬啦!
这是我刷第 41/100 道力扣简单题
💗 一、题目描述 💗
给定一个二进制数组, 计算其中最大连续 1 的个数。
示例1:
输入:[1,1,0,1,1,1]
输出:3
解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.
提示:输入的数组只包含 0 和 1 。 输入数组的长度是正整数,且不超过 10,000
💁 二、题目解析 💁
遍历一遍数组 定义两个变量,一个用于记录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: