题目:1049. 最后一块石头的重量 II
我的感悟:
- 复习了昨天的模板是不一样,今天这个我推出来了。
- 哈哈
理解难点:
- 按照昨天的思路,dp[target] 里面是能凑出来的最大值。
- a 是另外能凑出来的和。
- diff是两者的差。
听课笔记:
我自己先写出的代码:
class Solution:
def lastStoneWeightII(self, stones: List[int]) -> int:
target = sum(stones) // 2
dp = [0] * (target+1)
for i in range(len(stones)):
for j in range(target,stones[i]-1,-1):
dp[j] = max(dp[j],dp[j-stones[i]]+stones[i])
a = sum(stones) - dp[target]
diff = a - dp[target]
return diff
通过截图:
扩展写法:
资料:
本题就和 昨天的 416. 分割等和子集 很像了,可以尝试先自己思考做一做。
视频讲解:https://www.bilibili.com/video/BV14M411C7oV
标签:stones,target,E5%,1049,随想录,II,diff,day43,dp From: https://www.cnblogs.com/liqi175/p/18037695