Imports System
Public Module Module1
public Function max_subarray_sum(arr() as Integer) As Integer
Dim max_sum As Integer = 0
Dim max_till_i As Integer = 0
For i As Integer = 0 To arr.Length - 1
max_till_i = max_till_i + arr(i)
max_till_i = Math.Max(max_till_i, 0)
max_sum = Math.Max(max_sum, max_till_i)
Next
return max_sum
End Function
Public Sub Main()
Dim arr() As Integer = {1, -2, 2, -3, 4, -1, -1, 2, 3, -5, 4} ' 4 - 1 - 1 + 2 + 3 = 7
Console.Write(max_subarray_sum(arr))
End Sub
End Module
' run:
'
' 7
'