Problem
Given a binary array nums
, return **the maximum number of consecutive **1
's in the array.
Example 1:
Input: nums = [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.
Example 2:
Input: nums = [1,0,1,1,0,1]
Output: 2
Constraints:
1 <= nums.length <= 10^5
nums[i]
is either0
or1
.
Solution (Java)
class Solution {
public int findMaxConsecutiveOnes(int[] nums) {
int maxLen = 0;
int i = 0;
while (i < nums.length) {
int currentLen = 0;
while (i < nums.length && nums[i] == 1) {
i++;
currentLen++;
}
maxLen = Math.max(maxLen, currentLen);
i++;
}
return maxLen;
}
}
Explain:
nope.
Complexity:
- Time complexity : O(n).
- Space complexity : O(n).