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

动态规划01背包问题系列一>最后一块石头的重量II

这里写目录标题

  • 题目分析:
  • 状态表示:
  • 状态转移方程:
  • 初始化:
  • 填表顺序:
  • 返回值:
  • 代码呈现:
  • 优化版本:
    • 代码呈现:

题目分析:

这里是引用

状态表示:

这里是引用

状态转移方程:

这里是引用

初始化:

这里是引用

填表顺序:

这里是引用

返回值:

返回最小质量的石头这里是引用

代码呈现:

class Solution {
    public int lastStoneWeightII(int[] stones) {
        int n = stones.length; 
        int sum = 0; 
        for(int i = 0; i < n; i++) sum += stones[i];
        int aim = sum/2;
        
        int[][] dp = new int[n+1][aim+1];

        for(int i = 1; i <= n; i++)
            for(int j = 0; j <= aim; j++){
                dp[i][j] = dp[i-1][j];
                if(j >= stones[i-1])
                    dp[i][j] = Math.max(dp[i-1][j],dp[i-1][j-stones[i-1]] + stones[i-1]);
            }

        return sum - 2 * dp[n][aim];                
    }
}

优化版本:

不知道怎么优化看前面:链接: 点击

代码呈现:

 //空间优化:
        
        int n = stones.length; 
        int sum = 0; 
        for(int i = 0; i < n; i++) sum += stones[i];
        int aim = sum/2;
        
        int[] dp = new int[aim+1];

        for(int i = 1; i <= n; i++)
            for(int j = aim; j >= stones[i-1]; j--){
                dp[j] = Math.max(dp[j],dp[j-stones[i-1]] + stones[i-1]);
            }

        return sum - 2 * dp[aim];   
http://www.dtcms.com/a/54025.html

相关文章:

  • Spring Boot使用JDBC /JPA访问达梦数据库
  • 安卓免费多功能工具:一站式解决 PDF 阅读、编辑、转换等需求
  • 基础算法总结
  • vue3:七、拦截器实现
  • PX4中的UAVCAN_V1的实现库libcanard与数据格式DSDL
  • 【微知】Mellanox驱动中to是什么?有哪些超时时间?(time out,心跳2s,reset 1分钟)
  • 正点原子[第三期]Arm(iMX6U)Linux移植学习笔记-2.1 uboot简介
  • 算法-图-dijkstra 最短路径
  • Linux线程机制
  • 使用joblib 多线程/多进程
  • 锂电池升压到5V并且可以锂电池充电的芯片SM5401
  • K8S学习之基础十六:k8s中Deployment更新策略
  • AUTOSAR—TM模块介绍及使用概要
  • 深入剖析 Kubernetes 弹性伸缩:HPA 与 Metrics Server
  • 文件解析:doc、docx、pdf
  • 开发环境搭建-06.后端环境搭建-前后端联调-Nginx反向代理和负载均衡概念
  • RAG了解与实践
  • QEMU源码全解析 —— 块设备虚拟化(1)
  • MySQL root用户密码忘记怎么办(Reset root account password)
  • Java面经
  • 字节跳动AI原生编程工具Trae和百度“三大开发神器”AgentBuilder、AppBuilder、ModelBuilder的区别是?
  • 蓝桥试题:传球游戏(二维dp)
  • 基于海思soc的智能产品开发(芯片sdk和linux开发关系)
  • unity console日志双击响应事件扩展
  • C#核心(21)万物之父Object中的方法
  • Lambda表达式使用介绍
  • 【Bootstrap5】Bootstrap5学习笔记
  • 数据库复习(第五版)- 第七章 数据库设计
  • 3.6c语言
  • 【算法系列】基数排序