暴力算法,开个1000的lru cache可以过,基本思路就是bu du a,其他的dp算法,没想明白。。
class Solution:
def maximumScore(self, nums: List[int], multiplers: List[int]) -> int:
@lru_cache(1000)
def dfs(left, right, index):
if index >= len(multiplers):
return 0
return max(nums[left]*multiplers[index] + dfs(left+1, right, index+1), nums[right]*multiplers[index] + dfs(left, right-1, index+1) )
return dfs(0, len(nums)-1, 0)
基本思路有点儿像暴力尝试,每一次迭代都选最大的,所以有点像bottom -up的找最大结果。DP的思路等想到了再补充。