Largest subarray of 0's and 1's
PROBLEM :
Given an array of 0's and 1's your task is to complete the function maxLen which returns size of the largest sub array with equal number of 0's and 1's .
The function maxLen takes 2 arguments .The first argument is the array A[] and second argument is the size 'N' of the array A[] .
Input:
The first line of the input is T denoting the number of test cases .
Then T test cases follow . Each test case contains two lines .
The first line of each test case is a number N denoting the size of the array and in the next line are N space separated values of A [ ].
Output:
For each test case output in a new line the max length of the subarray .
Constraints:
1<=T<=100
1<=N<=100
0<=A[ ] <=1
Example:
Input (To be used only for expected output) :
2
4
0 1 0 1
5
0 0 1 0 0
Output
4
2
--------------------------------------------------------------------------------
SIMPLE c++ IMPLEMENTATION :
--------------------------------------------------------------------------------
/*
Please note that it's Function problem i.e.
you need to write your solution in the form Function(s) only.
Driver Code to call/invoke your function would be added by GfG's Online Judge.*/
/*You are required to complete this method*/
int maxLen(int arr[], int n)
{
unordered_map<int,int> map ;
map[0]=-1 ;
int sum=0 ;
int len=0 ;
for(int i=0;i<n;i++)
{
sum+=(arr[i]==0?-1:1) ;
if(map.find(sum)!=map.end())
{
if(len<i-map[sum])
len=i-map[sum] ;
}
else
map[sum]=i ;
}
return len ;
}
--------------------------------------------------------------------------------
Given an array of 0's and 1's your task is to complete the function maxLen which returns size of the largest sub array with equal number of 0's and 1's .
The function maxLen takes 2 arguments .The first argument is the array A[] and second argument is the size 'N' of the array A[] .
Input:
The first line of the input is T denoting the number of test cases .
Then T test cases follow . Each test case contains two lines .
The first line of each test case is a number N denoting the size of the array and in the next line are N space separated values of A [ ].
Output:
For each test case output in a new line the max length of the subarray .
Constraints:
1<=T<=100
1<=N<=100
0<=A[ ] <=1
Example:
Input (To be used only for expected output) :
2
4
0 1 0 1
5
0 0 1 0 0
Output
4
2
--------------------------------------------------------------------------------
SIMPLE c++ IMPLEMENTATION :
--------------------------------------------------------------------------------
/*
Please note that it's Function problem i.e.
you need to write your solution in the form Function(s) only.
Driver Code to call/invoke your function would be added by GfG's Online Judge.*/
/*You are required to complete this method*/
int maxLen(int arr[], int n)
{
unordered_map<int,int> map ;
map[0]=-1 ;
int sum=0 ;
int len=0 ;
for(int i=0;i<n;i++)
{
sum+=(arr[i]==0?-1:1) ;
if(map.find(sum)!=map.end())
{
if(len<i-map[sum])
len=i-map[sum] ;
}
else
map[sum]=i ;
}
return len ;
}
--------------------------------------------------------------------------------
Comments
Post a Comment