How to check if an array contains a contiguous subarray having zero-sum in C#

1 Answer

0 votes
using System;
 
public class Program
{
    public static bool hasZeroSumSubarray(int[] arr)
    {
        int size = arr.Length;
 
        for (int i = 0; i < size; i++) {
            int sum = arr[i];
            int startIndex = i;
            if (sum == 0) {
                return true;
            }
            for (int j = i + 1; j < size; j++) {
                sum += arr[j];
                int endIndex = j;
                if (sum == 0) {
                    Console.WriteLine("index from: " + startIndex + " to: " + endIndex);
                    return true;
                }
            }
        }
        return false;
    }
 
    public static void Main(string[] args)
    {
        int[] arr = new int[] {8, 32, 4, -5, 1, 9};
 
        bool hasZeroSum = hasZeroSumSubarray(arr);
 
        if (hasZeroSum) {
            Console.WriteLine("The array contains a contiguous subarray with zero-sum");
        }
        else {
            Console.WriteLine("The array does not contain a contiguous subarray with zero-sum");
        }
    }
}
 
 
 
 
/*
run:
  
index from: 2 to: 4
The array contains a contiguous subarray with zero-sum
  
*/

 



answered Sep 8, 2023 by avibootz
edited Sep 8, 2023 by avibootz
...