Find the count of maximum contiguous Even numbers

Given an array arr[] of N elements. The task is to find the maximum number of the contiguous even numbers in the given array.
Examples:
Input: arr[] = {1, 2, 3, 4, 6, 7}
Output: 2
Maximum contiguous even number sequence is {4, 6}Input: arr[] = {1, 0, 2, 4, 3, 8, 9}
Output: 3
Maximum contiguous even number sequence is {0, 2, 4}
Brute Force Approach:
Brute force approach would be to generate all possible contiguous subarrays and check each subarray to find the one with the maximum even numbers. This can be done using two nested loops to generate the subarrays and another loop to count the number of even numbers in each subarray.
Implementation of the above approach:
C++
#include <bits/stdc++.h>using namespace std;int maxContiguousEven(int arr[], int n) { int maxEven = 0; for (int i = 0; i < n; i++) { int currEven = 0; for (int j = i; j < n; j++) { if (arr[j] % 2 == 0) { currEven++; } else { break; } } maxEven = max(maxEven, currEven); } return maxEven;}int main() { int arr[] = {1, 0, 2, 4, 3, 8, 9}; int n = sizeof(arr) / sizeof(arr[0]); int maxEven = maxContiguousEven(arr, n); cout << maxEven << endl; return 0;} |
Java
import java.util.*;class GFG { public static int maxContiguousEven(int[] arr, int n) { int maxEven = 0; for (int i = 0; i < n; i++) { int currEven = 0; for (int j = i; j < n; j++) { if (arr[j] % 2 == 0) { currEven++; } else { break; } } maxEven = Math.max(maxEven, currEven); } return maxEven; } public static void main(String[] args) { int[] arr = { 1, 0, 2, 4, 3, 8, 9 }; int n = arr.length; int maxEven = maxContiguousEven(arr, n); System.out.println(maxEven); }} |
Python3
# Function to find the maximum number of contiguous even elements in an arraydef maxContiguousEven(arr): maxEven = 0 for i in range(len(arr)): currEven = 0 for j in range(i, len(arr)): if arr[j] % 2 == 0: currEven += 1 else: break maxEven = max(maxEven, currEven) return maxEven# Example usagearr = [1, 0, 2, 4, 3, 8, 9]# function callmaxEven = maxContiguousEven(arr)print(maxEven) |
C#
// C# code addition using System;public class GFG{ // A function which returns maximum continuous even numbers count public static int MaxContiguousEven(int[] arr, int n) { // stores the result int maxEven = 0; for (int i = 0; i < n; i++) { // stores even numbers for each subarray starting with "i" int currEven = 0; for (int j = i; j < n; j++) { // if found even then increment even count if (arr[j] % 2 == 0) { currEven++; } else { break; } } // update thre maximum even numbers count with current even numbers count. maxEven = Math.Max(maxEven, currEven); } return maxEven; } // Driver code public static void Main(string[] args) { int[] arr = { 1, 0, 2, 4, 3, 8, 9 }; int n = arr.Length; int maxEven = MaxContiguousEven(arr, n); Console.WriteLine(maxEven); }}// The code is contributed by Arushi Goel. |
Javascript
// Function to find the maximum number of contiguous even elements in an arrayfunction maxContiguousEven(arr) { let maxEven = 0; for (let i = 0; i < arr.length; i++) { let currEven = 0; for (let j = i; j < arr.length; j++) { if (arr[j] % 2 == 0) { currEven++; } else { break; } } maxEven = Math.max(maxEven, currEven); } return maxEven;}// Example usagelet arr = [1, 0, 2, 4, 3, 8, 9];let maxEven = maxContiguousEven(arr);console.log(maxEven); |
3
Time Complexity: O(n^2)
Auxiliary Space: O(1)
Approach: The idea is to keep traversing the array with two count variables named current_max and max_so_far. If an even number is found then increment current_max and compare it with max_so_far. Every time an odd element is found reset current_max to 0.
Implementation:
C++
// CPP program to count maximum// contiguous even numbers#include <iostream>using namespace std;// Function to count maximum// contiguous even numbersint countMaxContiguous(int arr[], int n){ int current_max = 0, max_so_far = 0; for (int i = 0; i < n; i++) { // If current element is not even // reset current_max if (arr[i] % 2 != 0) current_max = 0; // If even element is found, increment // current_max and update result if // count becomes more else { current_max++; // increase count max_so_far = max(current_max, max_so_far); } } return max_so_far;}// Driver codeint main(){ int arr[] = { 1, 0, 2, 4, 3, 8, 9 }; int n = sizeof(arr) / sizeof(arr[0]); cout << countMaxContiguous(arr, n); return 0;} |
Java
// Java program to count maximum// contiguous even numbersimport java.io.*;class GFG{// Function to count maximum// contiguous even numbersstatic int countMaxContiguous(int arr[], int n){ int current_max = 0, max_so_far = 0; for (int i = 0; i < n; i++) { // If current element is not // even reset current_max if (arr[i] % 2 != 0) current_max = 0; // If even element is found, increment // current_max and update result if // count becomes more else { current_max++; // increase count max_so_far = Math.max(current_max, max_so_far); } } return max_so_far;}// Driver codepublic static void main (String[] args) { int arr[] = { 1, 0, 2, 4, 3, 8, 9 }; int n = arr.length; System.out.println(countMaxContiguous(arr, n));}}// This code is contributed// by inder_verma |
Python 3
# Python 3 program to count maximum# contiguous even numbers# Function to count maximum# contiguous even numbersdef countMaxContiguous(arr, n): current_max = 0 max_so_far = 0 for i in range(n) : # If current element is not # even reset current_max if (arr[i] % 2 != 0): current_max = 0 # If even element is found, # increment current_max and # update result if count # becomes more else : current_max += 1 # increase count max_so_far = max(current_max, max_so_far) return max_so_far# Driver codeif __name__ == "__main__": arr = [ 1, 0, 2, 4, 3, 8, 9 ] n = len(arr) print(countMaxContiguous(arr, n))# This code is contributed# by ChitraNayal |
C#
// C# program to count maximum// contiguous even numbersusing System;class GFG{// Function to count maximum// contiguous even numbersstatic int countMaxContiguous(int []arr, int n){ int current_max = 0, max_so_far = 0; for (int i = 0; i < n; i++) { // If current element is not // even reset current_max if (arr[i] % 2 != 0) current_max = 0; // If even element is found, increment // current_max and update result if // count becomes more else { current_max++; // increase count max_so_far = Math.Max(current_max, max_so_far); } } return max_so_far;}// Driver codepublic static void Main () { int []arr = { 1, 0, 2, 4, 3, 8, 9 }; int n = arr.Length; Console.WriteLine(countMaxContiguous(arr, n));}}// This code is contributed// by inder_verma |
PHP
<?php// PHP program to count maximum // contiguous even numbers // Function to count maximum // contiguous even numbers function countMaxContiguous(&$arr, $n) { $max_so_far=0; for ($i = 0; $i < $n; $i++) { // If current element is not // even reset current_max if ($arr[$i] % 2 != 0) $current_max = 0; // If even element is found, // increment current_max and // update result if count // becomes more else { // increase count $current_max = $current_max + 1; $max_so_far = max($current_max, $max_so_far); } } return $max_so_far; } // Driver code $arr = array(1, 0, 2, 4, 3, 8, 9 ); $n = sizeof($arr); echo countMaxContiguous($arr, $n); // This code is contributed// by Shivi_Aggarwal?> |
Javascript
<script>// Javascript program to count maximum // contiguous even numbers // Function to count maximum // contiguous even numbers function countMaxContiguous(arr, n) { let current_max = 0, max_so_far = 0; for (let i = 0; i < n; i++) { // If current element is not even // reset current_max if (arr[i] % 2 != 0) current_max = 0; // If even element is found, increment // current_max and update result if // count becomes more else { current_max++; // increase count max_so_far = Math.max(current_max, max_so_far); } } return max_so_far; } // Driver code let arr = [ 1, 0, 2, 4, 3, 8, 9 ]; let n = arr.length; document.write(countMaxContiguous(arr, n)); // This code is contributed by Mayank Tyagi</script> |
3
Time Complexity: O(N)
Space Complexity: O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!



