leetcode-12双周赛-1246-删除回文子数组

Posted 真不知道叫啥好

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode-12双周赛-1246-删除回文子数组相关的知识,希望对你有一定的参考价值。

题目描述:

 

 方法:区间dp O(N^3)

class Solution:
    def minimumMoves(self, A: List[int]) -> int:
        N = len(A)
        
        dp = [[0] * (N+1) for _ in range(N+1)]
        for i in range(N+1):
            dp[i][i] = 1
        for size in range(2, N+1):
            for i in range(N - size + 1):
                j = i + size - 1
                dp[i][j] = 1 + dp[i+1][j]
                if A[i] == A[i+1]:
                    dp[i][j]  = min(dp[i][j] , 1 + dp[i+2][j])
                for k in range(i+2, j+1):
                    if A[i] == A[k]:
                        dp[i][j]  = min(dp[i][j] , dp[i+1][k-1] + dp[k+1][j])
                
        return dp[0][N-1]

 

以上是关于leetcode-12双周赛-1246-删除回文子数组的主要内容,如果未能解决你的问题,请参考以下文章

解题报告力扣 第 73 场双周赛

leetcode-第14周双周赛-1272-删除区间

leetcode-15双周赛-1288-删除被覆盖区间

leetcode-第14周双周赛-1273-删除树节点

LeetCode 第 55 场双周赛 / 第 247 场周赛

leetcode第 46 场双周赛