import java.util.Set;
import java.util.HashSet;
public class MyClass {
public static Boolean hasZeroSumSubarray(int[] arr) {
Set<Integer> set = new HashSet<>();
set.add(0);
int sum = 0;
for (int value: arr) {
sum += value;
// if set contains sum, there is a subarray with zero-sum
if (set.contains(sum)) {
return true;
}
set.add(sum);
}
return false;
}
public static void main(String args[]) {
int[] arr = { 4, 3, 5, -7, -1, 8, 6, 2 };
if (hasZeroSumSubarray(arr)) {
System.out.println("Subarray exists");
}
else {
System.out.println("Subarray does not exist");
}
}
}
// 3 5 -7 -1
/*
run:
Subarray exists
*/