/*
* @lc app=leetcode id=1049 lang=cpp
*
* [1049] Last Stone Weight II
*/
// @lc code=start
class Solution {
public:
int lastStoneWeightII(vector<int>& stones) {
bitset<1501> dp = {1};
int sum = 0;
for(int v : stones){
sum += v;
}
for(int v : stones){
for (int i = min(1500, sum); i >= v; i--)
dp[i] = dp[i] + dp[i - v];
}
for (int i = sum / 2; i >= 0; i--)
if (dp[i]) return sum - i - i;
return 0;
}
};
// @lc code=end
No.276 - LeetCode[1049] Last Stone Weight II - 最优二分配01背包
最新推荐文章于 2024-04-27 14:46:37 发布