自学动态规划——最后一块石头的重量 II

最后一块石头的重量 II

1049. 最后一块石头的重量 II - 力扣(LeetCode)

也是三刷,能无阻力做出来,但是发现做的效果没有之前好了,可以学学之前做的时候是如何优化的。

AC:

int lastStoneWeightII(vector<int>& stones)
{//也是分为两组,要让这两组的差值最小即可//看做是背包,均分数值,即最大容量是 sum/2,然后选取来装,让其尽可能装满,最后用总量来减就是另一个背包的重量,将两者相减就是答案int sum=0;for(int i=0;i<stones.size();i++)    sum+=stones[i];int total=sum/2;vector<int>dp(total+1,0);for(int i=0;i<stones.size();i++)for(int j=total;j>=stones[i];j--)dp[j]=max(dp[j],dp[j-stones[i]]+stones[i]);return abs((sum-dp[total])-dp[total]);
}

Faster:

优化方法是,多加了一个判断,如果恰好已经是一半了,那就直接返回就好,不需要再算剩下的了,因为此时已经是最好的安排了。

int lastStoneWeightII(vector<int>& stones)
{int dp[3002] = { 0 };int sum = 0;for (int s : stones)	sum += s;int maxsize = sum / 2;dp[0] = 0;for(int i=0;i<stones.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/news/839235.shtml

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

相关文章

C-数据结构-双向环链-变长结构体的使用-面向对象的思想

/* 通用性比较强的双向环链 1.变长结构体的使用 2.面向对象的思想 */ llist.h #ifndef LLIST_H__ #define LLSIT_H__ #define LLIST_FORWARD 1 #definr LLIST_BACKWARD 2 typedef void llist_op(const void *);//回调函数 typedef int llist_cmp(const void *,const void *);…

期货学习笔记-横盘行情学习1

横盘行情的特征及分类 横盘行情的概念 横盘行情时中继形态的一种&#xff0c;一般常出现在大涨或大跌之后出现横盘行情是对当前趋势行情的修正&#xff0c;是对市场零散筹码的清理&#xff0c;是为了集中筹码更便于后期行情的展开 横盘行情的特征 1.水平运动&#xff1a;该…

【文献阅读】ESG评级不确定性对企业绿色创新的影响研究

ESG评级不确定性对企业绿色创新的影响研究 张张张三丰de思考与感悟 论文内容总结&#xff1a;本文主要是关于ESG评级不确定性&#xff08;也即来自三个评级机构的ESG得分差异&#xff09;&#xff0c;对企业绿色创新的影响。并且有效地区分了创新数量和创新质量。创新数量的是专…

iptablese防火墙【SNAT和DNAT】

目录 1.SNAT策略及应用 1.1SNAT原理与应用 1.2 SNAT策略的工作原理 1.3 实验操练 2.DNAT策略 2.1 DNAT策略的概述 2.2 DNAT原理与应用 2.3 实验操练 1.SNAT策略及应用 1.1SNAT原理与应用 SNAT 应用环境&#xff1a;局域网主机共享单个公网IP地址接入Internet&#xf…

uniappx 应用未读角标插件(完善推送、通知、消息效果) Ba-Shortcut-Badge-U

简介&#xff08;下载地址&#xff09; Ba-Shortcut-Badge-U 是设置应用未读角标的原生插件&#xff0c;UTS版本&#xff08;同时支持uniapp和uniappx&#xff09; 支持设置未读、清空未读支持机型有Huawei、oppo、xiaomi、Samsung、Sony、LG、HTC、ZUK、ASUS、ADW、APEX、NO…

数据库第十次作业官方答案

文章目录 1234 1 假设有关系模式R(A,B,C,D,E)&#xff0c;如下函数依赖集F成立: A→BC&#xff0c;CD→E&#xff0c;B→D&#xff0c;E→A 如果将模式R分解为&#xff1a;R1(A,B,C)与R2(A,D,E)。 证明该分解是无损分解。 如果R1∩R2→ R1或R1 n R2→ R2&#xff0c;则一个分解…

pytest 用例收集钩子并发送飞书

pytest 用例收集钩子并发送飞书 当我们pytest用例运行完成后&#xff0c;想要知道运行多少个&#xff0c;成功还是失败&#xff0c;分别是多少&#xff0c;直接通知领导或者发到群里 conftest.pyimport requests def pytest_terminal_summary(terminalreporter, exitstatus, …

快速将短信从 Android 传输到 iPhone [支持 iPhone 15]

短信中包含有关工作和生活的重要信息&#xff0c;因此当我们拿到新手机时&#xff0c;它们不会丢失。今天&#xff0c;我们要讨论的是如何将短信从Android快速传输到iPhone&#xff0c;包括最新的iPhone 15。在Android和iOS操作系统之间&#xff0c;我们可以轻松地将短信从Andr…

mysql max_connections 默认值是多少

在 MySQL 中&#xff0c;max_connections 参数定义了能同时连接到数据库服务器的最大客户端连接数。该参数的默认值可能会根据 MySQL 版本和服务器的配置而有所不同。 对于 MySQL 5.7 和 MySQL 8.0&#xff0c;max_connections 的默认值通常是 151。这意味着同时可以有 150 个…

C语言(指针)8

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸各位能阅读我的文章&#xff0c;诚请评论指点&#xff0c;关注收藏&#xff0c;欢迎欢迎~~ &#x1f4a5;个人主页&#xff1a;小羊在奋斗 &#x1f4a5;所属专栏&#xff1a;C语言 本系列文章为个人学习笔记&#x…

mysqldump

mysqldump 是 MySQL 数据库备份工具&#xff0c;用于将数据库的数据和结构导出为 SQL 文件&#xff0c;方便后续恢复或迁移数据库。 1、备份整个数据库&#xff1a; mysqldump -u username -p database_name > backup.sql2、备份特定表&#xff1a; mysqldump -u usernam…

BUUCTF-misc23

[GUET-CTF2019]zips1 1.打开附件 是一个加密的压缩包 2.暴力破解压缩包 得到压缩包密码 3.010Editor 解密之后又得到一个加密的压缩包 发现不是解密文件 用010Editor打开是伪加密&#xff0c;将09 00 给为 00 00 4.Python 用Python运行文件里的部分内容&#xff0c;发现密…

高精度可编程直流电源功能

在电子产品开发和测试中&#xff0c;高精度可编程直流电源是一种非常重要的工具。它不仅能够提供稳定可靠的电源供应&#xff0c;还能够精确地控制输出电压和电流,满足各种复杂的测试需求。下面我们就来详细了解一下高精度可编程直流电源的功能特点。 1. 输出精度高 高精度可…

php代码执行--可能漏洞点

目录 php代码执行 找不到包? get包改post包 自定义函数 危险函数 php的命令执行(Linux命令执行) php执行系统命令6种函数: php命令执行利用 参数值可控: 整体可控: 变量拼接绕过关键字 符号过滤 过滤空格 字符串截取 空格 随记...杂 php代码执行 hackbar插件 信…

基于深度学习OCR文本识别

第一步&#xff1a;概要 基于深度学习OCR文本识别分为两个模块&#xff1a;DBNet和CRNN。 DBNet是基于分割的文本检测算法&#xff0c;算法将可微分二值化模块(Differentiable Binarization)引入了分割模型&#xff0c;使得模型能够通过自适应的阈值图进行二值化&#xff0c;并…

什么是IDE?IDE和compiler的区别?

编译器&#xff08;Compiler&#xff09;和集成开发环境&#xff08;Integrated Development Environment&#xff0c;IDE&#xff09;不是一回事&#xff0c;它们是两个不同的概念&#xff0c;但通常在软件开发中会一起使用。 编译器&#xff1a;编译器是一种将源代码转换为目…

php发送短信功能(创蓝短信)

一、以下是创蓝发送短信的功能&#xff0c;可以直接执行&#xff1a; <?php$phone 12312312312;$msg 测试短信功能;echo 发送手机号&#xff1a;.$phone.<br/>;echo 发送内容&#xff1a;.$msg.<br/>;$send sendMessage($phone, $msg);var_dump($send);…

HQL面试题练习 —— 品牌营销活动天数

题目来源&#xff1a;小红书 目录 1 题目2 建表语句3 题解 1 题目 有营销活动记录表&#xff0c;记录了每个品牌每次营销活动的开始日期和营销活动的结束日期&#xff0c;现需要统计出每个品牌的总营销天数。 注意&#xff1a; 1:苹果第一行数据的营销结束日期比第二行数据的营…

ros学习之路径规划

一、全局路径规划中的地图 1、栅格地图&#xff08;Grid Map&#xff09;2、概率图&#xff08;Cost Map&#xff09;3、特征地图&#xff08;Feature Map4、拓扑地图&#xff08;Topological Map&#xff09; 二、全局路径规划算法 1、Dijkstra 算法 2、最佳路径优先搜索算…

Vue过渡动画

文章目录 Vue过渡动画1 css定义的动画Vue实现2 纯Vue实现3 利用第三方库实现过渡动画 Animate Vue过渡动画 作用&#xff1a;在插入、更新或移除 DOM元素时&#xff0c;在合适的时候给元素添加样式类名。 写法&#xff1a; 准备好样式&#xff1a; 元素进入的样式&#xff1a;…