Given a binary array, find the maximum number of consecutive 1s in this array.
Example 1:
Input: [1,1,0,1,1,1] Output: 3 Explanation: The first two digits or the last three digits are consecutive 1s. The maximum number of consecutive 1s is 3.
Note:
- The input array will only contain
0
and1
. - The length of input array is a positive integer and will not exceed 10,000
思路:如果一开始传进来数组为空,则返回0。否则,设置两个变量maxConsecutiveOnes 和consecutiveOnes,
consecutiveOnes统计连续 1 的个数,如果某个位置导致连续中断,则把consecutiveOnes 赋0,继续统计后面的。
这个过程中把最大的consecutiveOnes值赋给maxConsecutiveOnes,代码如下
1 class Solution { 2 public int findMaxConsecutiveOnes(int[] nums) { 3 if (nums.length==0) 4 return 0; 5 int consecutiveOnes = 0,maxConsecutiveOnes = 0; 6 for (int i=0;i<nums.length;i++){ 7 if (nums[i]==1) 8 consecutiveOnes++; 9 else 10 consecutiveOnes=0; 11 if (consecutiveOnes>maxConsecutiveOnes) 12 maxConsecutiveOnes = consecutiveOnes; 13 } 14 return maxConsecutiveOnes; 15 } 16 }