/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
// your code goes here
}
}
class Solution {
int maxLength(int arr[]) {
// code here
for(int i = 1; i< arr.length ; i++){
arr[i] = arr[i] + arr[i-1];
}
int n = arr.length;
HashMap
<Integer , Integer
> m
= new HashMap
<>(); int len = 0;
for(int i = 0 ; i < n ; i++){
if(arr[i] == 0){
len
= Math.
max(len , i
+1); }else if(m.containsKey(arr[i])){
int prev = m.get(arr[i]);
int local_len = i - prev;
len
= Math.
max(len , local_len
); }else{
m.put(arr[i] , i);
}
}
return len;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCX0KfQoKCmNsYXNzIFNvbHV0aW9uIHsKICAgIGludCBtYXhMZW5ndGgoaW50IGFycltdKSB7CiAgICAgICAgLy8gY29kZSBoZXJlCiAgICAgICAgCiAgICAgICAgZm9yKGludCBpICA9IDE7IGk8IGFyci5sZW5ndGggOyBpKyspewogICAgICAgICAgICBhcnJbaV0gPSBhcnJbaV0gKyBhcnJbaS0xXTsKICAgICAgICB9ICAgIAogICAgICAgIGludCBuID0gYXJyLmxlbmd0aDsKICAgICAgICBIYXNoTWFwPEludGVnZXIgLCBJbnRlZ2VyPiBtID0gIG5ldyBIYXNoTWFwPD4oKTsKICAgICAgICBpbnQgbGVuID0gMDsKICAgICAgICBmb3IoaW50IGkgID0gMCA7IGkgPCBuIDsgaSsrKXsKICAgICAgICAgICAgaWYoYXJyW2ldID09IDApewogICAgICAgICAgICAgICAgbGVuID0gTWF0aC5tYXgobGVuICwgaSsxKTsKICAgICAgICAgICAgfWVsc2UgaWYobS5jb250YWluc0tleShhcnJbaV0pKXsKICAgICAgICAgICAgICAgIGludCBwcmV2ID0gbS5nZXQoYXJyW2ldKTsKICAgICAgICAgICAgICAgIGludCBsb2NhbF9sZW4gPSBpIC0gcHJldjsKICAgICAgICAgICAgICAgIGxlbiA9IE1hdGgubWF4KGxlbiAsIGxvY2FsX2xlbik7CiAgICAgICAgICAgIH1lbHNlewogICAgICAgICAgICAgICAgbS5wdXQoYXJyW2ldICwgaSk7CiAgICAgICAgICAgIH0KICAgICAgICB9ICAgICAgICAKICAgICAgICByZXR1cm4gbGVuOwogICAgICAgIAogICAgfQp9