leetcode_1049. Last Stone Weight II_[DP]

leetcode_1049. Last Stone Weight II_[DP]

1049. Last Stone Weight II

https://leetcode.com/problems/last-stone-weight-ii/

 

题意:从一堆石头里任选两个石头s1,s2,若s1==s2,则两个石头都被销毁,否则加入s1<s2,剩下一块重量为s2-s1的石头。重复上面的操作,直至只剩一块石头,或没有石头。问最后剩下的石头的重量最小为多少(0表示没有剩余石头)。

解法:

每次选两块石头进行相减问最后一块石头重量最小为多少,可以看作是将所有石头分为两波,使两波石头的差值的绝对值最小。

使用背包(snapsack)解决。dp[i]表示stones是否能组成重量为i的group。

class Solution
{
public:
    int lastStoneWeightII(vector<int>& stones)
    {
        int sum = accumulate(stones.begin(),stones.end(),0);
        vector<bool> dp(sum/2,0);
        dp[0]=1;
        for(int s:stones)
            for(int j=sum/2;j>=s;j--)
                dp[j] = dp[j]|dp[j-s];
        int res = sum;
        for(int i=0;i<=sum/2;i++)
            res = min(res, sum-dp[i]*i*2);
        return res;
    }
};

 

转载于:https://www.cnblogs.com/jasonlixuetao/p/10890116.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100908.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 舆情监控系统python开源_舆情监测系统开源

    舆情监控系统python开源_舆情监测系统开源互联网已成为思想文化信息的集散地和社会舆论的放大器。截至2009年6月30日,我国网民数量达到3.38亿人,网民规模已稳居世界第一位,互联网的影响力也日益提升,网络舆论已成为不可小觑的强大社会力量。近年来,网络热点事件频发,其大背景主要有两方面:一是我国社会处于转型期,涌现出一些新矛盾和新问题,如贫富悬殊、官员腐败、传统价值观受冲击等;二是随着互联网技术的迅速发展,越来越多的人上网获取新闻信息,发…

    2022年9月15日
    0
  • accept-encoding导致乱码问题

    accept-encoding导致乱码问题Accept-Encoding:gzip,deflate这个头信息是告诉服务器客户端所支持的压缩方式(然而数据压缩了但没有自动转,就会导致乱码)没有这个头信息说明客户端不支持压缩,要求不压缩直接返回文本

    2022年7月15日
    12
  • ReactNative入门(安卓)——API(上)

    ReactNative入门(安卓)——API(上)Alert-弹窗通过Alert.alert()方法调用唤起原生弹窗,点击会触发onPress回调(参考下方代码)并清除弹窗。importReact,{AppRegistry,C

    2022年7月3日
    47
  • 多因子权重算法_SEO权重优化软件

    多因子权重算法_SEO权重优化软件from:https://www.ricequant.com/community/topic/4559/在多因子量化投资体系中,具有稳定的预期收益,可解释的经济驱动理论,与其他因子的低相关性是选择alpha因子的关键指标。本篇文章中,我们以此为因子选取标准,简单地构建了自己的因子库,总共包括八个大类因子,每个大类因子中包含四到五个子类细分因子。为了比较不同的权重优化方法的优劣,本文首先采取不同的方…

    2022年10月4日
    0
  • linux配置虚拟ip_虚拟机静态ip

    linux配置虚拟ip_虚拟机静态ipLinux下配置网卡ip别名何谓ip别名?用windows的话说,就是为一个网卡配置多个ip。什么场合增加ip别名能派上用场?布网需要、多ip访问测试、特定软件对多ip的需要…andsoon.下面通过几个例子简单介绍一下如何使用ifconfig命令给网卡配置ip别名。一、首先为服务器网卡配置静态ip地址#ifconfigeth0192.168.6.99netmask25…

    2022年10月20日
    0
  • great little war game_flash游戏

    great little war game_flash游戏空格键显示血

    2022年9月7日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号