Largest subarray with equal number of 0s and 1s

Posted: 30 Oct, 2020
Difficulty: Moderate

PROBLEM STATEMENT

Try Problem

You are given an array consisting of 0s and 1s. You need to find the length of the largest subarray with an equal number of 0s and 1s.

For example:

If the given array is: [0, 0, 1, 0, 1] The largest subarray would be: [0, 1, 0, 1] (last 4 elements) having length 4.
Input Format:
The first line of input contains a single integer T, representing the number of test cases or queries to be run. 
Then the T test cases follow.

The first line of each test case contains a single integer N denoting the length of the array.

The second line of each test case contains N space-separated integers representing the array elements.
Output Format:
For each test case, return the length of the largest subarray with the equal number of 0s and 1s, in a new line.

Note:

You are not required to print the expected output, it has already been taken care of. Just implement the function.
Constraints:
1 ≤ T ≤ 10
1 ≤ N ≤ 10^5
0 ≤ Ai ≤ 1

Time Limit : 1 sec 
Approach 1
  • We generate all the possible subarrays by using two nested loops.
  • We can run two nested loops, the outer loop picks the starting element and the inner loop picks the ending element.
  • The third loop considers all elements in between the starting and ending elements.
  • Check if each subarray has equal number of 0s and 1s
  • This can be easily done by considering 0 as -1 and 1 as 1 since the sum for equal numbers of 0s and 1s would be 0.
  • For all subarrays with equal numbers of 0s and 1s, we take the one with the largest length.
Try Problem