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/