最大连续1的个数
最大连续1的个数
题目:
给定一个二进制数组, 计算其中最大连续1的个数。
示例 1:
输入: [1,1,0,1,1,1]
输出: 3
解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3.
注意:
- 输入的数组只包含 0 和1。
- 输入数组的长度是正整数,且不超过 10,000。
解法一:滑动窗口
1 | class Solution { |
解法二:数组遍历
思路:
用一个计数器count记录1的数量,另一个计数器maxCount记录当前最大的1的数量;
当遇到1时,count++;
当遇到0时:
(1)将count与maxCount进行比较,maxCount记录较大值;(2)将count设定为0。返回maxCount。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15class Solution {
public int findMaxConsecutiveOnes(int[] nums) {
int count = 0;
int maxCount = 0;
for(int i = 0; i < nums.length; i++) {
if(nums[i] == 1) {
count += 1;
} else {
maxCount = Math.max(maxCount, count);
count = 0;
}
}
return Math.max(maxCount, count);
}
}比较
第二种方式利用了遍历数组的方式,耗时短、内存消耗少。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 2113132982@qq.com
文章标题:最大连续1的个数
文章字数:349
本文作者:南邮石磊
发布时间:2020-10-12, 19:37:47
最后更新:2020-10-12, 20:03:13
原始链接:https://southpost.github.io/2020/10/12/%E6%9C%80%E5%A4%A7%E8%BF%9E%E7%BB%AD1%E7%9A%84%E4%B8%AA%E6%95%B0/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。