def max_subarray(nums):
max_sum = curr_sum = nums[0]
for num in nums[1:]:
curr_sum = max(num, curr_sum + num)
max_sum = max(max_sum, curr_sum)
return max_sum
print(max_subarray([-2,1,-3,4,-1,2,1,-5,4]))
ZGVmIG1heF9zdWJhcnJheShudW1zKToKICAgIG1heF9zdW0gPSBjdXJyX3N1bSA9IG51bXNbMF0KICAgIGZvciBudW0gaW4gbnVtc1sxOl06CiAgICAgICAgY3Vycl9zdW0gPSBtYXgobnVtLCBjdXJyX3N1bSArIG51bSkKICAgICAgICBtYXhfc3VtID0gbWF4KG1heF9zdW0sIGN1cnJfc3VtKQogICAgcmV0dXJuIG1heF9zdW0KCnByaW50KG1heF9zdWJhcnJheShbLTIsMSwtMyw0LC0xLDIsMSwtNSw0XSkp