1770. Maximum Score from Performing Multiplication Operations
On This Page
class Solution:
def maximumScore(self, nums: List[int], multipliers: List[int]) -> int:
n, m = len(nums), len(multipliers)
f = [[-inf] * (m + 1) for _ in range(m + 1)]
f[0][0] = 0
res = -inf
for i in range(m + 1):
for j in range(m - i + 1):
k = i + j - 1
if i > 0:
f[i][j] = max(f[i][j], f[i - 1][j] + multipliers[k] * nums[i - 1])
if j > 0:
f[i][j] = max(f[i][j], f[i][j - 1] + multipliers[k] * nums[n - j])
if i + j == m:
res = max(res, f[i][j])
return res