给定一个二进制数组, 计算其中最大连续 1 的个数。
示例 1:
输入: [1,1,0,1,1,1] 输出: 3 解释: 开头的两位和最后的三位都是连续 1,所以最大连续 1 的个数是 3. 注意:
count、result
分别用于计数和存放最终结果result
和 count
中大的那个,同时将 count
置为 0result
和 count
中较大的那个数,即为最大连续 1 的个数package Array;
import java.util.Arrays;
/**
* Created with IntelliJ IDEA.
* Version : 1.0
* Author : cunyu
* Email : cunyu1024@foxmail.com
* Website : https://cunyu1943.github.io
* 公众号 : 村雨遥
* Date : 2020/4/27 下午12:23
* Project : LeetCode
* Package : Array
* Class : FourEightFive
* Desc : 485. 最大连续1的个数
*/
public class FourEightFive {
public static void main(String[] args) throws Exception {
int[] nums = {1, 1, 0, 1, 1, 1};
System.out.println(findMaxConsecutiveOnes(nums));
}
/**
* 485. 最大连续1的个数
*
* @param nums
* @return 最大连续1的个数
*/
public static int findMaxConsecutiveOnes(int[] nums) {
// 定义变量用于计数和存放最终结果
int count = 0;
int result = 0;
// 遍历数组
for (int num : nums) {
// 若为 1, 次数 +1; 若为 0, 返回 result 和 count 中大的那个,同时将 count 置为 0
if (num == 1) {
count++;
} else {
result = Math.max(count, result);
count = 0;
}
}
result = Math.max(result, count);
return result;
}
}
[1]
485. 最大连续1的个数: https://leetcode-cn.com/problems/max-consecutive-ones/