Maximum length of subarray such that all elements are equal in the subarray - GeeksforGeeks

16 Apr, 2021
Given an array arr[] of N integers, the task is to find the maximum length subarray that contains similar elements.Examples:  
Input: arr[] = {1, 2, 3, 4, 5, 5, 5, 5, 5, 2, 2, 1, 1} Output: 5 Explanation: The subarray {5, 5, 5, 5, 5} has maximum length 5 with identical elements.Input: arr[] = {1, 2, 3, 4} Output: 1 Explanation: All identical element subarray are {1}, {2}, {3}, and {4} which is of length 1.  
 
Approach: The idea is to traverse the array store the maximum length and current length of the subarray which has the same elements. Below are the steps:  
Traverse the array and check if the current element is equal to the next element then increase the value of the current length variable.Now, compare the current length with max length to update the maximum length of the subarray.If the current element is not equal to the next element then reset the length to 1 and continue this for all the elements of the array.
Traverse the array and check if the current element is equal to the next element then increase the value of the current length variable.
Now, compare the current length with max length to update the maximum length of the subarray.
If the current element is not equal to the next element then reset the length to 1 and continue this for all the elements of the array.
Below is the implementation of the above approach:  
C++
Java
Python3
C#
Javascript
// C++ program for the above approach #include <iostream>using namespace std; // Function to find the longest// subarray with same elementint longest_subarray(int arr[], int d){     int i = 0, j = 1, e = 0;     for (i = 0; i < d - 1; i++) {         // Check if the elements        // are same then we can        // increment the length        if (arr[i] == arr[i + 1]) {            j = j + 1;        }        else {             // Reinitialize j            j = 1;        }         // Compare the maximum        // length e with j        if (e < j) {            e = j;        }    }     // Return max length    return e;} // Driver Codeint main(){    // Given array arr[]    int arr[] = { 1, 2, 3, 4 };     int N = sizeof(arr) / sizeof(arr[0]);     // Function Call    cout << longest_subarray(arr, N);}
// Java program for the above approachimport java.util.*; class GFG{ // Function to find the longest// subarray with same elementstatic int longest_subarray(int arr[], int d){    int i = 0, j = 1, e = 0;     for(i = 0; i < d - 1; i++)    {                // Check if the elements       // are same then we can       // increment the length       if (arr[i] == arr[i + 1])       {           j = j + 1;       }       else       {                       // Reinitialize j           j = 1;       }               // Compare the maximum       // length e with j       if (e < j)       {           e = j;       }    }     // Return max length    return e;} // Driver Codepublic static void main(String[] args){         // Given array arr[]    int arr[] = { 1, 2, 3, 4 };    int N = arr.length;     // Function Call    System.out.print(longest_subarray(arr, N));}} // This code is contributed by 29AjayKumar
# Python3 program for the above approach # Function to find the longest# subarray with same elementdef longest_subarray(arr, d):         (i, j, e) = (0, 1, 0)         for i in range(d - 1):                 # Check if the elements        # are same then we can        # increment the length        if arr[i] == arr[i + 1]:            j += 1        else:                         # Reinitialize j            j = 1                 # Compare the maximum        # length e with j        if e < j:            e = j         # Return max length    return e # Driver code # Given list arr[]arr = [ 1, 2, 3, 4 ]N = len(arr) # Function callprint(longest_subarray(arr, N)) # This code is contributed by rutvik_56
// C# program for the above approachusing System; class GFG{  // Function to find the longest// subarray with same elementstatic int longest_subarray(int []arr, int d){    int i = 0, j = 1, e = 0;      for(i = 0; i < d - 1; i++)    {                 // Check if the elements       // are same then we can       // increment the length       if (arr[i] == arr[i + 1])       {           j = j + 1;       }       else       {                        // Reinitialize j           j = 1;       }                // Compare the maximum       // length e with j       if (e < j)       {           e = j;       }    }      // Return max length    return e;}  // Driver Codepublic static void Main(String[] args){          // Given array []arr    int []arr = { 1, 2, 3, 4 };    int N = arr.Length;      // Function Call    Console.Write(longest_subarray(arr, N));}} // This code is contributed by 29AjayKumar
<script>// javascript program for the above approach     // Function to find the longest    // subarray with same element    function longest_subarray(arr , d)    {        var i = 0, j = 1, e = 0;         for (i = 0; i < d - 1; i++)        {             // Check if the elements            // are same then we can            // increment the length            if (arr[i] == arr[i + 1])            {                j = j + 1;            }            else            {                 // Reinitialize j                j = 1;            }             // Compare the maximum            // length e with j            if (e < j) {                e = j;            }        }         // Return max length        return e;    }     // Driver Code             // Given array arr        var arr = [ 1, 2, 3, 4 ];        var N = arr.length;         // Function Call        document.write(longest_subarray(arr, N)); // This code is contributed by todaysgaurav</script>
1
 
Time Complexity: O(N) Auxiliary Space: O(1) 
29AjayKumar
ukasp
rutvik_56
todaysgaurav
subarray
Algorithms
Analysis
Arrays
Mathematical
Arrays
Mathematical
Algorithms
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
SDE SHEET - A Complete Guide for SDE Preparation
DSA Sheet by Love Babbar
How to write a Pseudo Code?
Understanding Time Complexity with Simple Examples
Introduction to Algorithms
Analysis of Algorithms | Set 1 (Asymptotic Analysis)
Understanding Time Complexity with Simple Examples
Analysis of Algorithms | Set 3 (Asymptotic Notations)
Time Complexity and Space Complexity
Analysis of Algorithms | Set 2 (Worst, Average and Best Cases)