1. leetCode
–485最大连续1的个数
1.1 问题描述
给定一个二进制数组, 计算其中最大连续1的个数。
示例 1:
- 输入:
[1,1,0,1,1,1]
- 输出:
3
- 解释:
开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3
。注意:
- 输入的数组只包含 0 和1。
- 输入数组的长度是正整数,且不超过 10,000。
1.2 问题分析
首先遍历数组,通过count记录连续1的长度,通过count与result的比较的得出最大连续1的个数result,如果遍历到0则把count置为0。
1.3 代码实现
public static int findMaxConsecutiveOnes(int[] nums) {
// 记录连续的数
int count = 0;
// 储存最终的结果
int result = 0;
// 遍历数组
for (int i = 0; i < nums.length; i++) {
if(nums[i] == 1) {
count++;
}
result = count>result?count:result;
if(nums[i] == 0) {
count = 0;
}
}
return result;
}
1.4 测试代码
public class FindMaxConsecutiveOnes {
public static void main(String[] args) {
/*
*/
int[] nums = {1,1,0,1,1,1,1};
int result = findMaxConsecutiveOnes(nums);
System.out.println(result);
}
}
1.5 结果分析
执行结果:
- 执行用时 :2 ms, 在所有 Java 提交中击败了97.98%的用户
- 内存消耗 :41.8 MB, 在所有 Java 提交中击败了5.26%的用户