How to check if an array contains a contiguous subarray having zero-sum in VB.NET

1 Answer

0 votes
Imports System

Public Class Program
    Public Shared Function hasZeroSumSubarray(ByVal arr As Integer()) As Boolean
        Dim size As Integer = arr.Length

        For i As Integer = 0 To size - 1
            Dim sum As Integer = arr(i)
            Dim startIndex As Integer = i

            If sum = 0 Then
                Return True
            End If

            For j As Integer = i + 1 To size - 1
                sum += arr(j)
                Dim endIndex As Integer = j

                If sum = 0 Then
                    Console.WriteLine("index from: " & startIndex & " to: " & endIndex)
                    Return True
                End If
            Next
        Next

        Return False
    End Function

    Public Shared Sub Main(ByVal args As String())
        Dim arr As Integer() = New Integer() {8, 32, 4, -5, 1, 9}
        Dim hasZeroSum As Boolean = hasZeroSumSubarray(arr)

        If hasZeroSum Then
            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")
        End If
    End Sub
End Class





' run:
'
' index from: 2 to: 4
' The array contains a contiguous subarray with zero-sum
'

 



answered Sep 8, 2023 by avibootz
...