题目:原题链接(困难)
标签:动态规划、分治算法
解法 | 时间复杂度 | 空间复杂度 | 执行用时 |
Ans 1 (Python) | 8068ms (70.21%) | ||
Ans 2 (Python) | |||
Ans 3 (Python) |
解法一:
class Solution:
def maxCoins(self, nums: List[int]) -> int:
nums = [1] + nums + [1]
size = len(nums)
dp = [[0] * size for _ in range(size)]
for length in range(2, size):
for i in range(size - length):
j = i + length
for k in range(i + 1, j):
dp[i][j] = max(dp[i][j], nums[i] * nums[k] * nums[j] + dp[i][k] + dp[k][j])
# for row in dp:
# print(row)
return dp[0][-1]