485. Max Consecutive Ones
Question
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 <= 105nums[i]is either0or1.
Approach 1: Optimal
Intuition
- Max consecutive mean track
currCount&maxCount
Algorithm
- Declare & initialize
int maxCount = 0 - Declare & initialize
int currCount = 0 - Loop through
numsif (nums[i] == 0) currCount = 0- else increment
currCount& updatemaxCount
- Return
maxCount
Code
class Solution {
public:
int findMaxConsecutiveOnes(vector<int>& nums) {
int maxCount = 0;
int currCount = 0;
for (int i = 0 ; i < nums.size() ; i++) {
if (nums[i] == 0) {
currCount = 0;
} else {
currCount++;
}
maxCount = max(maxCount, currCount);
}
return maxCount;
}
};
Complexity Analysis
- Time Complexity:
Only single pass - Space Complexity: