Soma de subsequência máxima de Tencent 46

Tencent 46 - subsequência máxima e código de leet53

Dado um número inteiro de matrizes, encontre uma sub-matriz contínua com a maior soma (a sub-matriz contém pelo menos um elemento) e retorne a maior soma.

Exemplo:

Entrada: [-2,1, -3,4, -1,2,1, -5,4],
Saída: 6
Explicação: A soma das sub-matrizes consecutivas [4, -1,2,1] é máxima, que é 6 .
Avançado:

Se você implementou uma solução com complexidade O (n), tente usar uma solução de divisão e conquista mais elaborada.

A fórmula dp é decidir como usar o resultado anterior, dependendo se o valor atual é maior que 0

class Solution:
    def maxSubArray(self, nums: List[int]) -> int:
        if len(nums)==1:return nums[0]
        res=nums[0]
        dp=[nums[0]]
        for i in range(1,len(nums)):
            if dp[i-1]<=0:
                dp.append(nums[i])
            else:
                dp.append(nums[i]+dp[i-1])
            res=max(res,dp[-1])
        return res
Publicado 93 artigos originais · elogiados 8 · 10.000+ visualizações

Acho que você gosta

Origin blog.csdn.net/zlb872551601/article/details/103652501
Recomendado
Clasificación