class Solution:
def minScoreTriangulation(self, values: List[int]) -> int:
n = len(values)
f = [[0] * n for _ in range(n)]
for i in range(n - 3, -1, -1):
for j in range(i + 2, n):
f[i][j] = min(f[i][k] + f[k][j] + values[i] * values[j] * values[k]
for k in range(i + 1, j))
return f[0][n - 1]
class Solution:
def mergeStones(self, stones: List[int], k: int) -> int:
n = len(stones)
if (n - 1) % (k - 1):
return -1
s = list(accumulate(stones, initial=0))
f = [[0] * n for _ in range(n)]
for i in range(n - 1, -1, -1):
for j in range(i + 1, n):
f[i][j] = min(f[i][m] + f[m + 1][j] for m in range(i, j, k - 1))
if not (j - i) % (k - 1):
f[i][j] += s[j + 1] - s[i]
return f[0][-1]
原文地址:https://blog.csdn.net/qq947467490/article/details/134743594
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_23614.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!