跳到主要内容

3180.执行操作可获得的最大总奖励I

链接:3180.执行操作可获得的最大总奖励I
难度:Medium
标签:数组、动态规划
简介:以整数形式返回执行最优操作能够获得的 最大 总奖励。

题解 1 - undefined

  • 编辑时间:2024-10-25
  • 执行用时:4026ms
  • 内存消耗:763.09MB
  • 编程语言:undefined
  • 解法介绍:去重后dfs
class Solution:
def maxTotalReward(self, rewardValues: List[int]) -> int:
arr = list(set(rewardValues))
arr.sort()
n = len(arr)
@cache
def dfs(idx: int, cur: int) -> int:
if idx == n: return cur
res = dfs(idx + 1, cur)
if arr[idx] > cur:
res = max(res, dfs(idx + 1, cur + arr[idx]))
return res
return dfs(0, 0)