Tencent 46-suma de subsecuencia máxima

Tencent 46-subsecuencia máxima y leetcode53

Dado un número entero de matrices, encuentre una submatriz continua con la suma más grande (la submatriz contiene al menos un elemento) y devuelva la suma más grande.

Ejemplo:

Entrada: [-2,1, -3,4, -1,2,1, -5,4],
Salida: 6
Explicación: La suma de sub-matrices consecutivas [4, -1,2,1] es máxima, que es 6 .
Avanzado:

Si ha implementado una solución con complejidad O (n), intente utilizar una solución de divide y vencerás más elaborada.

La fórmula dp es decidir cómo usar el resultado anterior de acuerdo a si el valor actual es mayor 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 artículos originales · elogiado 8 · 10,000+ vistas

Supongo que te gusta

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