O(n) O(1)
Intuition
Sweep once, growing a run of consecutive 1's and resetting it to 0 on every 0; track the largest run seen.
Explanation
One pass
run = best = 0
for x in nums:
if x == 1: run += 1; best = max(best, run)
else: run = 0
return best
Worked example
[1,1,0,1,1,1] → runs 2 then 3 → 3.
Complexity
- Time: O(n).
- Space: O(1).
Implementation
class Solution {
public int findMaxConsecutiveOnes(int[] nums) {
int best = 0, run = 0;
for (int x : nums) {
if (x == 1) {
run++;
best = Math.max(best, run);
} else {
run = 0;
}
}
return best;
}
}