Kadane Algo(DP): find the maximum contiguous subarray

from sys import maxsiz
from typing import List


def kudane(arr: List[int]):
mxsofar, mxendinghere, start, end, skiprun = -maxsize - 1, 0, 0, 0, 0
for i in range (len (arr)):  # from index 0 -> len(arr)
mxendinghere += arr[i]
if mxsofar < mxendinghere:
mxsofar = mxendinghere
start = skiprun
end = i
if mxendinghere < 0:  # for -ve val skip to next val as adding -ve val will not increase mxsofar sum
mxendinghere = 0
skiprun = i + 1
return start, end, mxsofar


a = [-2, -3, 4, -1, -2, 1, 5, -3]
print (kudane (a))