Maximum consecutive one’s (or zeros) in a binary array

07 Jul, 2022
Given binary array, find count of maximum number of consecutive 1’s present in the array.
Examples : 
Input  : arr[] = {1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1}
Output : 4

Input  : arr[] = {0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1}
Output : 1
A simple solution is consider every subarray and count 1’s in every subarray. Finally return return size of largest subarray with all 1’s. An efficient solution is traverse array from left to right. If we see a 1, we increment count and compare it with maximum so far. If we see a 0, we reset count as 0.
Implementation:
CPP
Java
Python3
C#
PHP
Javascript
// C++ program to count maximum consecutive// 1's in a binary array.#include<bits/stdc++.h>using namespace std; // Returns count of maximum consecutive 1's// in binary array arr[0..n-1]int getMaxLength(bool arr[], int n){    int count = 0; //initialize count    int result = 0; //initialize max     for (int i = 0; i < n; i++)    {        // Reset count when 0 is found        if (arr[i] == 0)            count = 0;         // If 1 is found, increment count        // and update result if count becomes        // more.        else        {            count++;//increase count            result = max(result, count);        }    }     return result;} // Driver codeint main(){    bool arr[] = {1, 1, 0, 0, 1, 0, 1, 0,                  1, 1, 1, 1};    int n = sizeof(arr)/sizeof(arr[0]);    cout << getMaxLength(arr, n) << endl;    return 0;}
// Java program to count maximum consecutive// 1's in a binary array.class GFG {         // Returns count of maximum consecutive 1's    // in binary array arr[0..n-1]    static int getMaxLength(boolean arr[], int n)    {                 int count = 0; //initialize count        int result = 0; //initialize max             for (int i = 0; i < n; i++)        {                         // Reset count when 0 is found            if (arr[i] == false)                count = 0;                 // If 1 is found, increment count            // and update result if count becomes            // more.            else            {                count++;//increase count                result = Math.max(result, count);            }        }             return result;    }         // Driver method    public static void main(String[] args)    {        boolean arr[] = {true, true, false, false,                         true, false, true, false,                           true, true, true, true};                                    int n = arr.length;                 System.out.println(getMaxLength(arr, n));    }} // This code is contributed by Anant Agarwal.
# Python 3 program to count# maximum consecutive 1's# in a binary array. # Returns count of maximum# consecutive 1's in binary# array arr[0..n-1]def getMaxLength(arr, n):     # initialize count    count = 0         # initialize max    result = 0     for i in range(0, n):             # Reset count when 0 is found        if (arr[i] == 0):            count = 0         # If 1 is found, increment count        # and update result if count        # becomes more.        else:                         # increase count            count+= 1            result = max(result, count)             return result # Driver codearr = [1, 1, 0, 0, 1, 0, 1,             0, 1, 1, 1, 1]n = len(arr) print(getMaxLength(arr, n)) # This code is contributed by Smitha Dinesh Semwal
// C# program to count maximum// consecutive 1's in a binary array.using System; class GFG {         // Returns count of maximum consecutive    // 1's in binary array arr[0..n-1]    static int getMaxLength(bool []arr, int n)    {                 int count = 0; //initialize count        int result = 0; //initialize max             for (int i = 0; i < n; i++)        {                         // Reset count when 0 is found            if (arr[i] == false)                count = 0;                 // If 1 is found, increment count            // and update result if count            // becomes more.            else            {                count++; //increase count                result = Math.Max(result, count);            }        }             return result;    }         // Driver code    public static void Main()    {        bool []arr = {true, true, false, false,                      true, false, true, false,                      true, true, true, true};                                     int n = arr.Length;                 Console.Write(getMaxLength(arr, n));    }} // This code is contributed by Nitin Mittal.
<?php// PHP program to count maximum// consecutive 1's in a binary array. // Returns count of maximum// consecutive 1's in binary// array arr[0..n-1]function getMaxLength($arr, $n){    // initialize count    $count = 0;         // initialize max    $result = 0;     for ($i = 0; $i < $n; $i++)    {        // Reset count when 0 is found        if ($arr[$i] == 0)            $count = 0;         // If 1 is found, increment        // count and update result        // if count becomes more.        else        {            // increase count            $count++;            $result = max($result, $count);        }    }     return $result;} // Driver code$arr = array(1, 1, 0, 0, 1, 0,             1, 0, 1, 1, 1, 1);$n = sizeof($arr) / sizeof($arr[0]);echo getMaxLength($arr, $n) ; // This code is contributed by nitin mittal.?>
<script> // JavaScript program to count maximum// consecutive 1's in a binary array. // Returns count of maximum// consecutive 1's in binary// array arr[0..n-1]function getMaxLength(arr, n) {    // initialize count    let count = 0;     // initialize max    let result = 0;     for (let i = 0; i < n; i++) {        // Reset count when 0 is found        if (arr[i] == 0)            count = 0;         // If 1 is found, increment        // count and update result        // if count becomes more.        else {            // increase count            count++;            result = Math.max(result, count);        }    }     return result;} // Driver codelet arr = new Array(1, 1, 0, 0, 1, 0,    1, 0, 1, 1, 1, 1);let n = arr.length;document.write(getMaxLength(arr, n)); // This code is contributed by gfgking </script>
4
Time Complexity : O(n) Auxiliary Space : O(1)
Exercise: Maximum consecutive zeros in a binary array.
This article is contributed by Smarak Chopdar. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks. 
nitin mittal
_saurabh_jaiswal
arorakashish0911
hardikkoriintern
binary-string
Arrays
Arrays
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Maximum and minimum of an array using minimum number of comparisons
Top 50 Array Coding Problems for Interviews
Multidimensional Arrays in Java
Stack Data Structure (Introduction and Program)
Linear Search
Introduction to Arrays
K'th Smallest/Largest Element in Unsorted Array | Set 1
Subset Sum Problem | DP-25
Introduction to Data Structures
Python | Using 2D arrays/lists the right way