动态规划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.mzph.cn/web/71458.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

逐行拆解 C 语言:数据类型、变量

今日&#xff0c;我们即将踏上一段充满趣味与挑战的学习之旅&#xff0c;深度钻研数据类型的多样奥秘&#xff0c;解锁变量创建的实用技巧。不仅如此&#xff0c;还会邂逅两个实用的基础库函数&#xff0c;探索它们在程序中穿针引线的奇妙作用。同时&#xff0c;几个简洁却强大…

【音视频】ffplay简单过滤器

一、ffplay简单过滤器 视频旋转&#xff1a;借助transpose滤镜 ffplay -i 1.mp4 -vf transpose1这里选择不同的数字是不同的方向&#xff1a; 视频翻转&#xff1a;借助hflip/vflip实现水平和垂直翻转&#xff1a; 水平翻转 ffplay 1.mp4 -vf hflip垂直翻转 ffplay 1.mp4 …

springboot中注解有什么用

注解&#xff08;Annotation&#xff09;是 Java 的一个重要特性&#xff0c;我用几个具体例子来解释&#xff1a; 1、标记功能 Service // 告诉Spring这是一个服务类 public class UserService { }Data // 告诉Lombok自动生成getter/setter public class User {private…

Excel中COUNTIF用法解析

COUNTIF 是 Excel 中一个非常实用的函数&#xff0c;用于统计满足某个条件的单元格数量。它的基本语法如下&#xff1a; 基本语法 COUNTIF(范围, 条件) 范围&#xff1a;需要统计的单元格区域&#xff0c;例如 A1:A10 或整列 A:A。 条件&#xff1a;用于判断哪些单元格需要被…

java根据List<Object>中的某个属性排序(数据极少,顺序固定)

public static void main(String[] args) { List<HashMap<String, Object>> dydj new ArrayList<>(); // 模拟原始数据 HashMap<String, Object> map1 new HashMap<>(); map1.put(“city_name”, “张家口”); map1.put(“wjs”, 0); map1.put…

4G工业路由器在公交充电桩中的应用与优势

随着电动公交车的普及&#xff0c;公交充电桩的稳定运行和高效管理是交通营运部门最关心的问题。4G工业路由器凭借其卓越的数据采集和通讯能力&#xff0c;成为实现充电桩智能化管理的关键。 公交充电桩运维管理需求概述&#xff1a; 1.实时性&#xff1a;实时监控充电状态、剩…

利用golang embed特性嵌入前端资源问题解决

embed嵌入前端资源&#xff0c;配置前端路由的代码如下 func StartHttpService(port string, assetsFs embed.FS) error {//r : gin.Default()gin.SetMode(gin.ReleaseMode)r : gin.New()r.Use(CORSMiddleware())// 静态文件服务dist, err : fs.Sub(assetsFs, "assets/di…

【LangChain 数据连接封装】 文档加载器、文档处理器

小结&#xff1a; 文档处理部分&#xff0c;建议在实际应用中详细测试后使用与向量数据库的链接部分本质是接口封装&#xff0c;向量数据库需要自己选型类似 LlamaIndex&#xff0c;LangChain 也提供了丰富的 Document Loaders DocumentLoaders和 Text Splitters Text Splitte…

Springboot集成dubbo完整过程(三)

准备工作 1&#xff0c;准备mysql服务环境2&#xff0c;准备redis服务环境3&#xff0c;准备zookeeper服务环境4&#xff0c;准备逆向生成bean的xml配置文件5&#xff0c;准备slf4j日志xml配置文件6&#xff0c;准备一个sql脚本 1&#xff0c;搭建创建服务工程 1&#xff0c;创…

【DeepSeek 】学习编程的利器:DeepSeek 使用指南

学习编程的利器&#xff1a;DeepSeek 使用指南 如果你正苦于如何开始学习 Python/R/Linux/HTML 语法&#xff0c;这个方法或许是你学习过程中的利器&#xff0c;又不用考虑请教真人&#xff0c;麻烦别人。 学习阶段 第一阶段&#xff1a;通读语法书籍 第一步通读一些相关语法…

【大模型篇】目前主流 AI 大模型体系全解析:架构、特点与应用

大家好,我是大 F,深耕AI算法十余年,互联网大厂技术岗。分享AI算法干货、技术心得。 欢迎关注《大模型理论和实战》、《DeepSeek技术解析和实战》,一起探索技术的无限可能! 阅读完本文,您将知道:目前主流的大模型体系有哪些?及其架构的特点。 前言 在自然语言处理(NL…

电池管理系统(BMS)架构详细解析:原理与器件选型指南

BMS&#xff08;电池管理系统&#xff09;架构详细讲解 从你提供的BMS&#xff08;Battery Management System&#xff09;架构图来看&#xff0c;主要涉及到电池监控模块、通信模块、功率控制模块等部分。下面我将详细讲解该架构的各个功能模块及其工作原理。 1. 电池管理核…

决策树(Decision Tree)基础知识

目录 一、回忆1、*机器学习的三要素&#xff1a;1&#xff09;*函数族2&#xff09;*目标函数2.1&#xff09;*模型的其他复杂度参数 3&#xff09;*优化算法 2、*前处理/后处理1&#xff09;前处理&#xff1a;特征工程2&#xff09;后处理&#xff1a;模型选择和模型评估 3、…

洛谷 P3648 APIO2014 序列分割 题解

写了挺多斜率优化的题目了&#xff0c;这道&#xff08;差点&#xff09;就速切了&#xff0c;原因还是单调队列维护斜率的写法出锅。 题意 题目描述 你正在玩一个关于长度为 n n n 的非负整数序列的游戏。这个游戏中你需要把序列分成 k 1 k 1 k1 个非空的块。为了得到 …

策略模式的C++实现示例

核心思想 策略模式是一种行为型设计模式&#xff0c;它定义了一系列算法&#xff0c;并将每个算法封装在独立的类中&#xff0c;使得它们可以互相替换。策略模式让算法的变化独立于使用它的客户端&#xff0c;从而使得客户端可以根据需要动态切换算法&#xff0c;而不需要修改…

Loki+Promtail+Grafana监控K8s日志

在现代云原生架构中&#xff0c;监控与日志管理对于确保系统稳定性和可靠性至关重要。Kubernetes&#xff08;K8s&#xff09;作为当下流行的容器编排平台&#xff0c;对日志的监控管理需求尤为突出。Loki, Promtail 和 Grafana 构成了一套强大的日志监控解决方案&#xff0c;它…

Git 批量合并 Commit 并且保留之前的 Commit 快速实现的思路

文章目录 需求Rebase / Pick / squashVim 的快速全局字符串替换 需求 我想把如下的提交 commit&#xff0c;变成一个 Commit&#xff0c;并且合并这些 Commit 的消息到一个节点 Rebase / Pick / squash 我合并到 5e59217 这个hash 上&#xff0c;这样合并后会保留两个 Commit…

基于海思soc的智能产品开发(芯片sdk和linux开发关系)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 随着国产化芯片的推进&#xff0c;在soc领域&#xff0c;越来越多的项目使用国产soc芯片。这些soc芯片&#xff0c;通常来说运行的os不是linux&…

将数据库结构化数据整合到RAG问答中的方式

**将数据库&#xff08;结构化数据&#xff09;接入 RAG&#xff08;Retrieval-Augmented Generation&#xff09;**的常见方式&#xff0c;并分别说明其实现方法、优点与缺点。 方式一&#xff1a;LLM 自动生成查询语句&#xff08;SQL/NoSQL&#xff09;直接访问数据库 方法…

论坛系统测试报告

目录 一、项目背景二、论坛系统测试用例思维导图三、论坛系统测试3.1界面测试3.2登陆测试3.3主页测试3.4个人中心测试 四、自动化测试脚本4.1配置驱动4.2创建浏览器类4.3功能测试4.3.1登陆测试4.3.2注册测试4.3.3主页测试4.3.4帖子编辑4.3.5运行主代码 五、BUG分析六、测试总结…