当前位置: 首页 > article >正文

leecode1049.最后一块石头的重量||

 

 这道题目和416.分割等和子集有点像,本质就是将石头尽可能地分割成两个等份,二者的差值就是最后一块石头的最小重量

转换到01背包问题就是重量和价值都为stones[i],背包容量为sum/2的背包所能获取的最大容量,最后只需要sum-dp[bagWeight]-dp[bagWeight]就能得到结果,由于sum/2是向下取整的,所以分割出来的这一份dp[bagWeight]是重量较小的那一份,所以最后相减的结果不会出现负数

class Solution {
public:
    int lastStoneWeightII(vector<int>& stones) {
        int n=stones.size(),sum=0,bagWeight=0;
        for(int i=0;i<n;i++)
            sum+=stones[i];
        bagWeight=sum/2;
        vector<int> dp(bagWeight+1,0);
        for(int i=0;i<n;i++)
            for(int j=bagWeight;j>=stones[i];j--)
                dp[j]=max(dp[j],dp[j-stones[i]]+stones[i]);
        return sum-dp[bagWeight]-dp[bagWeight];
    }
};


http://www.kler.cn/a/443457.html

相关文章:

  • 如何在 Spring Boot 应用程序中使用 WireMock 模拟外部 rest api 调用进行测试
  • 沙县小吃点餐系统|Java|SSM|JSP|
  • 深度学习实战之超分辨率算法(tensorflow)——ESPCN
  • 【C#】WebSoket 演示(使用websocket-sharp库)
  • 【FFmpeg 教程 一】截图
  • aws(学习笔记第十八课) 使用aws cdk(python)进行部署
  • WebPlotDigitizer 使用指南
  • 【Linux网络编程】第十二弹---构建与优化HTTP请求处理:从HttpRequest到HttpServer的实战
  • 信息安全概论
  • Web应用中的XSS防护实践
  • 位运算符说明
  • LWIP协议:三次握手和四次挥手、TCP/IP模型
  • 解释工厂模式
  • uniapp 将base64字符串保存为图片、Word、Excel、音频、视频等文件
  • CentOS 7.9 ISO 镜像下载
  • 大数据:开启智能时代的钥匙
  • RK3568平台(Kbuild篇)vmlinux 编译过程
  • Golang学习笔记_14——切片
  • Docker 镜像加速和配置的分享 云服务器搭建beef-xss
  • Kubernetes中subPath