LeetCode 1049. 最后一块石头的重量 II 做题小结
题目
有一堆石头,每块石头的重量都是正整数。每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下:如果 x == y,那么两块石头都会被完全粉碎;
如果 x != y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x。
最后,最多只会剩下一块石头。返回此石头最小的可能重量。如果没有石头剩下,就返回 0。示例:输入:[2,7,4,1,8,1]
输出:1
解释:
组合 2 和 4,得到 2,所以数组转化为 [2,7,1,8,1],
组合 7 和 8,得到 1,所以数组转化为 [2,1,1,1],
组合 2 和 1,得到 1,所以数组转化为 [1,1,1],
组合 1 和 1,得到 0,所以数组转化为 [1],这就是最优值。提示:1 <= stones.length <= 30
1 <= stones[i] <= 1000
代码
class Solution {public int lastStoneWeightII(int [] stones) {int []dp =new int [15001];int sum=0;for(int i=0;i<stones.length;i++) {sum+=stones[i];}int target = sum/2;for(int i=0;i<stones.length;i++) {for(int j=target;j>=stones[i];j--) {dp[j]=Math.max(dp[j], dp[j-stones[i]]+stones[i]);}}return sum-dp[target]-dp[target];}
}
LeetCode 1049. 最后一块石头的重量 II 做题小结相关推荐
- LeetCode 1049. 最后一块石头的重量 II
1049. 最后一块石头的重量 II 无论按照何种顺序粉碎石头,最后一块石头的重量总是可以表示成 可以这样理解,将所有的石头分为两堆,ki=1的石头是一堆,ki=-1的石头是另一堆,我们的目标就是求上 ...
- 153、【动态规划】leetcode ——1049. 最后一块石头的重量 II:滚动数组(C++版本)
题目描述 原题链接:1049. 最后一块石头的重量 II 解题思路 本题要找的是最小重量,我们可以将石头划分成两个集合,当两个集合的重量越接近时,相减后,可达到的装量就会是最小,此时本题的思路其实就类 ...
- 代码随想录刷题|LeetCode 1049. 最后一块石头的重量II 494. 目标和 474.一和零
目录 1049. 最后一块石头的重量 II 思路 最后一块石头的重量|| 494. 目标和 思路 0.求什么 1.确定dp数组的含义 2.递推公式 3.初始化dp数组 4.遍历顺序 目标和 474.一 ...
- LeetCode 1049. 最后一块石头的重量 II(DP)
1. 题目 有一堆石头,每块石头的重量都是正整数. 每一回合,从中选出任意两块石头,然后将它们一起粉碎. 假设石头的重量分别为 x 和 y,且 x <= y.那么粉碎的可能结果如下: 如果 x ...
- 2022-2-19 Leetcode 1049.最后一块石头的重量II
例二分析:26+21-40 = 7 33-31 = 2 7-2 = 5 相当于小块石头集合之后一起去砸大石头. 这道题和最后一块石头的重量I 有什么不同? 例子更复杂了.(虽然不知道复杂在哪里) 这道 ...
- 95. Leetcode 1049. 最后一块石头的重量 II (动态规划-背包问题)
步骤一.确定状态: 确定dp数组及含义 dp[i]表示的是: 背包的容量为i的情况下,所能得到物品的最大值 这里的物品容量和物品价值都是石头的重量 步骤二.推断状态方程: dp[j] = max(dp ...
- leetcode - 1049. 最后一块石头的重量 II
这个问题可以转化为0-1背包问题,背包的大小为所有石头的重量之和的一半,意思就是找到要求的石头组合重量之和最接近所有石头重量的一半.具体的C++代码如下: class Solution { publi ...
- LeetCode:1049.最后一块石头的重量II 494.目标和 474.一和零
1049.最后一块石头的重量II 题目 有一堆石头,用整数数组 stones 表示.其中 stones[i] 表示第 i 块石头的重量. 每一回合,从中选出任意两块石头,然后将它们一起粉碎.假设石头的 ...
- LeetCode刷题day43|1049. 最后一块石头的重量 II、 494. 目标和、474.一和零
文章目录 一.1049. 最后一块石头的重量 II 二.494. 目标和 三.474.一和零 一.1049. 最后一块石头的重量 II 这道题其实就与"分割子集"一样,就是先将总和 ...
最新文章
- 东南大学和山东大学计算机学院,东南大学和山东大学都是985、211哪所综合实力更强些呢?...
- 科技/IT:2019 年 Q3 表现最佳和最差的企业
- java B2B2C 源码 多级分销springmvc mybatis多租户电子商城系统--配置中心服务化和高可用...
- 演讲十忌(翻译并制作成PPT)
- ARCGIS影像配准教程
- ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var mysql 启动不了
- 修改图片背景_用P图软件将图片背景更改
- django模版标签和继承
- Concurrent connection limit
- 【Android Studio安装部署系列】二十三、Android studio查看Gradle版本号
- 14. model(2)
- 手机通讯录html模板,手机通讯录导模板
- 机器学习算法——神经网络4(RBF神经网络)
- 计算机一级考试考什么呢,计算机一级考试考些什么呢
- Android NDK下载(r10~r25) 持续更新
- 自动安装L2tp的脚本
- 特征选择+++分裂大法好
- 选择startup公司的一点经验
- 2022双十一最亮投影仪推荐,当贝X3激光投影3200ANSI流明超高亮度
- linux nic cpu 10%,cpu – NIC中的描述符概念