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
示例1:
输入: [1,1,0,1,1,1] 输出: 3 说明:前两位数字或后三位数字是连续的1s。 连续1的最大数量为3。
注意:
- 输入数组只包含
0
和1
。 - 输入数组的长度为正整数,不超过10,000
-
思路:根据数组前后是否有连续1来计算最大的连续1个数,用j保存每次连续1的个数,然后与result对比,result存取最大的j。注意特殊情况,如果只有一个1或者数组中只有两个数,要单独处理。
public class Solution {
public int findMaxConsecutiveOnes(int[] nums) {
int result = 0;
int j = 1;
if(nums[0]==1 && result==0) result=1;//只有一个1
for(int i = 0;i<nums.length-1;i++){
if(nums[i]==1 && result==0) result=1;//数组中有01组合
if(nums[i+1]==1 && result==0) result=1;//数组中有10组合
if(nums[i]==1 && nums[i+1]==1){
j++;
if(j>result) result=j;
}
else{
j=1;
}
}
return result;
}
}