1.题目

给定一个二进制数组, 计算其中最大连续 1 的个数。

示例:

  1. 输入:[1,1,0,1,1,1]
  2. 输出:3
  3. 解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.

提示:

  • 输入的数组只包含 01
  • 输入数组的长度是正整数,且不超过 10,000。

2.思路

一次遍历,记录最大出现1的次数,如若中途中断,则从0重新记录

  1. public int findMaxConsecutiveOnes(int[] nums) {
  2. int maxCount = 0, count = 0;
  3. int n = nums.length;
  4. for (int i = 0; i < n; i++) {
  5. if (nums[i] == 1) {
  6. count++;
  7. } else {
  8. maxCount = Math.max(maxCount, count);
  9. count = 0;
  10. }
  11. }
  12. maxCount = Math.max(maxCount, count);
  13. return maxCount;
  14. }