当前位置:网站首页>LeetCode 1049. Weight of the last stone II daily question
LeetCode 1049. Weight of the last stone II daily question
2022-07-07 16:58:00 【@Little safflower】
Problem description
There is a pile of stones , Use an array of integers stones Express . among stones[i] It means the first one i The weight of a stone .
Every round , Choose any two stones , Then smash them together . Suppose the weights of the stones are x and y, And x <= y. The possible results of crushing are as follows :
If x == y, Then both stones will be completely crushed ;
If x != y, So the weight is x The stone will be completely crushed , And the weight is y The new weight of the stone is y-x.
Last , There's only one piece left at most stone . Return to this stone The smallest possible weight . If there is no stone left , Just go back to 0.Example 1:
Input :stones = [2,7,4,1,8,1]
Output :1
explain :
Combine 2 and 4, obtain 2, So the array turns into [2,7,1,8,1],
Combine 7 and 8, obtain 1, So the array turns into [2,1,1,1],
Combine 2 and 1, obtain 1, So the array turns into [1,1,1],
Combine 1 and 1, obtain 0, So the array turns into [1], This is the optimal value .
Example 2:Input :stones = [31,26,33,21,40]
Output :5
Tips :
1 <= stones.length <= 30
1 <= stones[i] <= 100source : Power button (LeetCode)
link :https://leetcode.cn/problems/last-stone-weight-ii
Copyright belongs to the network . For commercial reprint, please contact the official authority , Non-commercial reprint please indicate the source .
Java
class Solution {
public int lastStoneWeightII(int[] stones) {
int n = stones.length;
int sum = 0;
for(int i : stones){
sum += i;
}
int[] dp = new int[sum / 2 + 1];
for(int i = 0;i < n;i++){
for(int j = sum / 2;j >= stones[i];j--){
dp[j] = Math.max(dp[j],dp[j - stones[i]] + stones[i]);
}
}
return sum - dp[sum / 2] * 2;
}
}
边栏推荐
猜你喜欢
"The" "PIP" "entry cannot be recognized as the name of a cmdlet, function, script file, or runnable program."
3000 words speak through HTTP cache
记录Servlet学习时的一次乱码
如何快速检查钢网开口面积比是否符合 IPC7525
The difference and working principle between compiler and interpreter
作为Android开发程序员,android高级面试
使用JSON.stringify()去实现深拷贝,要小心哦,可能有巨坑
字节跳动Android面试,知识点总结+面试题解析
Personal notes of graphics (4)
整理几个重要的Android知识,高级Android开发面试题
随机推荐
DAPP defi NFT LP single and dual currency liquidity mining system development details and source code
[vulnhub range] thales:1
Three. JS series (2): API structure diagram-2
二叉搜索树(基操篇)
作为Android开发程序员,android高级面试
The difference and working principle between compiler and interpreter
Binary search tree (features)
three. JS create cool snow effect
Personal notes of graphics (1)
Have fun | latest progress of "spacecraft program" activities
LocalStorage和SessionStorage
谎牛计数(春季每日一题 53)
Deep listening array deep listening watch
【Seaborn】组合图表:PairPlot和JointPlot
LeetCode 312. 戳气球 每日一题
[Android -- data storage] use SQLite to store data
【Seaborn】组合图表、多子图的实现
Cesium (4): the reason why gltf model is very dark after loading
Read PG in data warehouse in one article_ stat
《产品经理必读:五种经典的创新思维模型》的读后感