第二个题用记忆化递归做的,刚做出来,直接写dp的方法掌握不了,。,, def solution(total_disk, total_memory, app_list):     n = len(app_list)     dp = [[[-1 for i in range(total_memory + 1)] for i in range(total_disk + 1)] for i in range(n)]     # 状态转移方程     # dp[i][v][u] 前i件物品 在 占用 v 容量的 disk 和 u 容量的 memory 时,所能获取的最大价值     # dp[i][v][u] = max( dp[i-1][v][u], app_list[i] + dp[i-1] [v-app_list[i][0]] [u-app_list[i][1] )     # i y用下标从0,...,i-1个品     help_dp(total_disk, total_memory, app_list, dp, n-1)     print(dp)     return dp[n-1][total_disk][total_memory] def help_dp(disk, memory, app_lsit, dp, index):     if index-1 < 0:         return 0     if disk <= 0 or memory <= 0:         return 0     if dp[index][disk][memory] != -1:         return dp[index][disk][memory]     res = help_dp(disk, memory, app_list, dp, index-1)     res = max(res, app_list[index][2] + help_dp(disk - app_list[index][0], memory-app_list[index][1], app_list, dp, index-1))     dp[index][disk][memory] = res     return dp[index][disk][memory]
点赞 评论

相关推荐

Hyh_111:像这种hr就不用管了,基本没啥实力,换一个吧
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务