算法一:最后一块石头的重量

算法一:最后一块石头的重量

题目内容

有一堆石头,每块石头的重量都是正整数。每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下:

如果 x == y,那么两块石头都会被完全粉碎;
如果 x != y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x。最后,最多只会剩下一块石头。返回此石头的重量。如果没有石头剩下,就返回 0。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/last-stone-weight

算法思想

这里我们将完全粉碎定义为0。由题知:x==y两块都完全粉碎(x=y=0);x<=y,x完全粉碎(x=0),y=y-x。且每次挑选最重的两块石头进行比较,因此每次挑选操作前都需要对数组进行排序,以便选出最重两块石头。这里我们将石头重量的数组命为stone_weight,sort()为排序方法体。
算法简单描述:算法主要步骤
重复上述步骤

整体算法

整体算法

尾语

以上属于个人见解,有好的想法可以在下方评论写出自己的想法,大家一起进步。该题是力扣上的题,若有侵权,请及时告知。该题链接:https://leetcode-cn.com/problems/last-stone-weight

猜你喜欢

转载自blog.csdn.net/weixin_40741512/article/details/112284678