[アルゴリズム]最大サブ配列


最大サブアレイ
説明する
class Solution:
    def maxSubArray(self, nums: List[int]) -> int:
        dp = [0] * len(nums)
        dp[0] = nums[0]
        for i in range(1, len(nums)):
            dp[i] = max(nums[i], dp[i-1] + nums[i])

        return max(dp)
dp配列を作成し、上に展開します.これはdp[i]=iを考慮した場合の最大の和である.これまでの負数であれば、dp[i-1]を追加する必要はありません.