网站标题优化技巧南通制作网站公司
web/
2025/9/27 10:19:44/
文章来源:
网站标题优化技巧,南通制作网站公司,基金会网站建设方案,石家庄做网站最好的公司最后一块石头的重量 II
1049. 最后一块石头的重量 II - 力扣#xff08;LeetCode#xff09;
也是三刷#xff0c;能无阻力做出来#xff0c;但是发现做的效果没有之前好了#xff0c;可以学学之前做的时候是如何优化的。
AC#xff1a;
int lastStoneWeightII(vecto…最后一块石头的重量 II
1049. 最后一块石头的重量 II - 力扣LeetCode
也是三刷能无阻力做出来但是发现做的效果没有之前好了可以学学之前做的时候是如何优化的。
AC
int lastStoneWeightII(vectorint stones)
{//也是分为两组要让这两组的差值最小即可//看做是背包均分数值即最大容量是 sum/2然后选取来装让其尽可能装满最后用总量来减就是另一个背包的重量将两者相减就是答案int sum0;for(int i0;istones.size();i) sumstones[i];int totalsum/2;vectorintdp(total1,0);for(int i0;istones.size();i)for(int jtotal;jstones[i];j--)dp[j]max(dp[j],dp[j-stones[i]]stones[i]);return abs((sum-dp[total])-dp[total]);
}
Faster
优化方法是多加了一个判断如果恰好已经是一半了那就直接返回就好不需要再算剩下的了因为此时已经是最好的安排了。
int lastStoneWeightII(vectorint stones)
{int dp[3002] { 0 };int sum 0;for (int s : stones) sum s;int maxsize sum / 2;dp[0] 0;for(int i0;istones.size();i)for (int j maxsize; j stones[i]; j--){if (dp[j] maxsize)dp[j] max(dp[j], dp[j - stones[i]] stones[i]);else if (2*dp[j] sum) return 0;//如果大于那就顺延不变}return sum - 2 * dp[maxsize];
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/82709.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!