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:

Approach 1: Optimal

Intuition

Algorithm

  1. Declare & initialize int maxCount = 0
  2. Declare & initialize int currCount = 0
  3. Loop through nums
    1. if (nums[i] == 0) currCount = 0
    2. else increment currCount & update maxCount
  4. 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