码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2019-11-05 15:30:40      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:sel   nbsp   imu   self   图片   div   ret   range   方法   

题目描述:

技术图片

 

 方法:区间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-删除回文子数组

标签:sel   nbsp   imu   self   图片   div   ret   range   方法   

原文地址:https://www.cnblogs.com/oldby/p/11798346.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!