Problem Description:
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
Analysis:
本题的思路就是遍历整个数组,每次遍历到0的时候重新计数,并在此时保留最大的连续1的个数。代码如下:
Code:
class Solution {
public int findMaxConsecutiveOnes(int[] nums) {
int cnt = 0;
int resMax = -1;
boolean p = true;
for(int i = 0; i < nums.length; i++) {
if(nums[i] > 0) {
if(p == false) {
p = true;
}
cnt++;
} else {
if(p == true) {
resMax = Math.max(resMax, cnt);
cnt = 0;
p = false;
}
}
}
resMax = Math.max(resMax, cnt);
return resMax;
}
}