# code tpl
{%hackmd theme-dark %}
[-2,1,-3,4,-1,2,1,-5,4]
[4,-1,2,1] = 6
for max sub array sum
kadane algo
for i pos -> dp[i]
take previous or not, if previos > 0
[4,-1,2]
for dp[1], previous dp[0] is 4 > 0
num [4, -1, 2]
dp [4 , 0 ,0] curSum = 4
dp. [4, 3, 0] curSum = 3
dp. [4, 3, 5] curSum = 5
-> ans: 5
num [-1, -1, 2]
dp [-1 , 0 ,0] curSum = 0
dp [-1 , -1 ,0] curSum = 0
dp [-1 , -1 ,2] curSum = 0
-> ans: 2
```python=
class Solution(object):
def maxSubArray(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
# [4, -1, 2]
dp = [0]*len(nums)
curSum = 0
for i in range(len(nums)):
dp[i] = max(num[i], curSum+num[i])
# dp[0] -> 4
# dp[1] -> max(-1, -1+4) -> 3
# dp[2] -> max(2, 2+3) -> 5
curSum += max(curSum+num[i], 0)
# 4
# 3
# 5
return max(dp)
# 5
```
###### tags: `mock interview` `面試`