leetcode 1046. Last Stone Weight(最后石头的重量)

[苹果开发者账号]03 申请APPID、苹果开发者账号 常见问题整理 目录:问题持续更新问题一:提示:抱歉,您暂时不能注册问题二:Apple Developer Support提示:联系我们以继续流程 问题一:提示:抱歉,您暂时不能注册 申请苹果开发者账号,应该先注册AppleID,由于很多都是申请的公司使用的苹果开发者账号。一般操作申请动作的人,可能是新手操作,也可能图方便,有些信息会随便填写。 有些人会把姓名填写为,公司的产品、简称、缩写等等。这是不对的。 还有出生日期也会随便乱填。生日如果填写的不对,会被苹果限制使用一些功能的(苹果给的提示不是太明确)。 当生日填写的 阅读详情

You are given an array of integers stones where stones[i] is the weight of the ith stone.

We are playing a game with the stones. On each turn, we choose the heaviest two stones and smash them together. Suppose the heaviest two stones have weights x and y with x <= y. The result of this smash is:

If x == y, both stones are destroyed, and
If x != y, the stone of weight x is destroyed, and the stone of weight y has new weight y - x.
At the end of the game, there is at most one stone left.

Return the smallest possible weight of the left stone. If there are no stones left, return 0.

Example 1:

Input: stones = [2,7,4,1,8,1]
Output: 1
Explanation:
We combine 7 and 8 to get 1 so the array converts to [2,4,1,1,1] then,
we combine 2 and 4 to get 2 so the array converts to [2,1,1,1] then,
we combine 2 and 1 to get 1 so the array converts to [1,1,1] then,
we combine 1 and 1 to get 0 so the array converts to [1] then that’s the value of the last stone.

数组stones,里面数字是石头的重量。
每次取出最重的两颗石头,如果重量相等就毁掉,重量不相等,则剩下重量为差绝对值的石头。
返回剩下的最后一颗石头的重量,如果不剩下,返回0。

思路:
既然每次取出最重的两颗,显然是要排序的,
但是得到了差的绝对值之后,放回去还要再排序,

比如[2,7,4,1,8,1],排序成[1, 1, 2, 4, 7, 8]
由7,8得到1后,把1放回去,又要排序,这显然很耗时,所以用最大堆,保证每次取的都是最大的元素。

最后可能都消掉了,堆里没有元素,这时返回0,
堆里剩一个的时候返回剩下的元素。

    public int lastStoneWeight(int[] stones) {
        PriorityQueue<Integer> heap = new PriorityQueue<>((a, b) -> (b - a));
        
        for(int stone : stones) heap.add(stone);
        
        while(heap.size() > 1) {
            int stone1 = heap.poll();
            int stone2 = heap.poll();
            
            if(stone1 == stone2) continue;  
             
            heap.add(stone1 - stone2);
        }
        return heap.size() == 0 ? 0 : heap.poll();
    }
手把手教你学simulink(40.1)--水力发电场景示例:基于 Simulink 的抽水蓄能电站水力发电 项目背景抽水蓄能电站是一种重要的储能技术,广泛应用于电力系统的调峰填谷、频率调节和备用电源。它通过在电力负荷低谷时将水从下水库抽到上水库储存,在电力负荷高峰时释放水进行发电,从而实现电能的高效利用。与传统的水电站不同,抽水蓄能电站可以在短时间内快速响应电网的需求,具有良好的灵活性和可靠性。本项目旨在使用 MATLAB/Simulink 模拟一个完整的抽水蓄能电站的水力发电过程,包括水泵-涡轮机系统、发电机、水道系统、控制系统等,并实现对电站的精确控制,确保其在不同工况下都能稳定运行。 阅读详情

相关推荐

2022-2028年中国美容仪行业发展战略规划及投资机会预测报告

报告类型:产业研究 报告格式:电子版、纸介版 出品单位:智研咨询-产业信息网 美容仪是一种根据人体生理机能进行调节改善身体和面部的机器,它按照功能来说有美白、嫩肤、祛斑、祛皱、脱毛、减肥等多种,按照名称来说有超声波导入、光子嫩肤、高周波电疗、RF 电波拉皮、电子祛斑点痣、E 光永久脱毛嫩肤、贾法尼营养导入导出等。 智研咨询发布的《2022-2028年中国美容仪行业发展战略规划及投资机会预测报告》共十七章。首先介绍了中国美容仪行业市场发展环境、美容仪整体运行态势等,接着分析了中...

kt346的博客 468

最后一块石头的重量II

每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。= y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x。最后,最多只会剩下一块石头。返回此石头最小的可能重量。如果没有石头剩下,就返回 0。target的理解:被消去的石头重量除以二的商。如果 x == y,那么两块石头都会被完全粉碎;有一堆石头,每块石头的重量都是正整数。

Zxy18327720221的博客 347

基于Transformer的CFD代理模型:AeroTransformer原理、实现与优化

计算流体动力学(CFD)仿真是航空航天、汽车工程等领域的关键技术,但其高计算成本限制了设计优化效率。代理模型通过机器学习方法学习输入参数与流场输出间的映射关系,能实现秒级预测,大幅加速仿真流程。Transformer架构凭借其全局注意力机制,能有效建模流场中的长程物理关联,克服了传统卷积神经网络在捕捉全局依赖上的局限。通过预训练与微调策略,模型能先在大规模多样化数据集上学习通用流体规律,再针对特定任务快速适配,显著提升了小样本下的泛化能力与工程实用价值。AeroTransformer项目正是这一技术路线的典

weixin_33509203的博客 358

c# 差值 获取时间_LeetCode基础算法题第161篇:谁知道这个算法的时间复杂度?

技术提高是一个循序渐进的过程,所以我讲的leetcode算法题从最简单的level开始写的,然后到中级难度,最后到hard难度全部完。目前我选择C语言,Python和Java作为实现语言,因为这三种语言还是比较典型的。由于篇幅和精力有限,其他语言的实现有兴趣的朋友请自己尝试。如果有任何问题可以在文章后评论或者私信给我。如果有朋友希望我讲些其他话题,请在评论区留言或者私信给我。持续分享,敬请关注。L...

weixin_35407400的博客 172

Verilog HDL 100道面试题及参考答案

在 Verilog HDL 中,参数(parameter)和宏定义(define)都可用于定义常量,但它们存在诸多不同之处。参数(parameter)是模块内部的常量定义,具有局部性。它在模块内部起作用,不同模块可以有同名的参数,且值可以不同。参数通常用于定义模块的一些配置信息,例如数据位宽、延迟时间等。参数的定义和使用是在模块的作用域内进行的,通过参数传递可以方便地对模块进行配置。endmodule在上述代码中,WIDTH是一个参数,用于定义加法器的位宽。通过改变WIDTH。

大模型大数据攻城狮的专栏 1728

药物吸收仿真软件:Caco-2_(9).Caco-2模型在药物开发中的案例分析

通过以上五个案例,我们可以看到Caco-2模型在药物开发中的重要作用。它不仅能够帮助我们预测药物的肠道吸收情况,还能够用于优化药物配方、评估代谢稳定性、研究药物相互作用以及转运蛋白的影响。这些体外实验和仿真分析的结果为药物的进一步临床研究提供了重要的参考依据,有助于缩短药物开发周期,提高研发效率。

kkchenjj的博客 863

Leetcode_C++笔记之1046. Last Stone Weight(最后一颗石头的权重)

Type 就是数据类型,Container 就是容器类型(Container必须是用数组实现的容器,比如vector,deque等等,但不能用 list。当需要用自定义的数据类型时才需要传入这三个参数,使用基本数据类型时,只需要传入数据类型,默。优先队列具有队列的所有特性,包括队列的基本操作,只是在这基础上添加了内部的一个排序,它本质是一个堆实现的。1、按照题目依次找出两个最大值并将对应位置置零,然后这两个最大值相减,结果插入到数组中值是0的位置,最后如果第二个最大值是0,则返回第一个最大值。

JayShaun的博客 560

CUDA编程 - Nsight system & Nsight compute 的安装和使用 - 学习记录

在 cuda 编程中,经常会用到 Nsight system 和 Nsight compute 进行性能分析等,下面做个学习总结。本篇包括安装和常用分析思路总结,具体实践操作总结会放在下一篇博客。

点云算法工程师 1万+

leetcode 1046. 最后一块石头的重量(优先队列)

【题目】1046. 最后一块石头的重量 有一堆石头,每块石头的重量都是正整数。 每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下: 如果 x == y,那么两块石头都会被完全粉碎; 如果 x != y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x。 最后,最多只会剩下一块石头。返回此石头的重量。如果没有石头剩下,就返回 0。 示例: 输入:[2,7,4,1,8,1] 输出:1 解释: 先选出

Sophia_fez的博客 492

把 SAP 配置当成一张地图:用 IMG 把实施、变更与治理串成一条清晰的路

摘要 SAP IMG(Implementation Guide)是SAP实施的核心导航体系,它将客户需求转化为系统配置,提供结构化路径和文档化支持。IMG不是简单的菜单树,而是包含业务落地路径、标准化配置活动和文档化知识的实施语言。通过三种视图(Reference、Enterprise、Project)解决不同管理问题,其中Project IMG尤其重要,可管理项目范围、分工和进度。实际工作中应通过SPRO事务码访问IMG,将探索与执行分开管理。案例显示,跨国企业通过Project IMG可有效控制组织架构

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 226

【GlobalMapper精品教程】072:GlobalmapperV25中文版下载地址及安装教程

GlobalmapperV25中文版下载地址及安装教程安装包位于专栏完整数据包中,请订阅后从优快云私信查收!最新GlobalMapper中文版入门实战实验教程,图文并茂,实用性强,内容包括:GM基础操作、数据处理及地形图制作、航测内业数据处理、点云处理、地形分析、空间分析、数据库建库入库等。配套完整案例数据,持续同步更新!订阅专栏后,从私信查收中文安装包永久版(中文23.0+24.0)及配套实验数据包。

智慧空间实验室 4728

Last Stone Weight 最后一块石头的重量

[toc] Last Stone Weight 最后一块石头的重量 We have a collection of stone , each stone has a positive integer weight. Each turn, we choose the two heaviest stones and smash them together. Suppose the stones have weights x and y with x <= y. The result of this s

Cui's Blog 196

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

LeetCode.1046-最后的石头重量(Last Stone Weight)

这是小川的第388次更新,第418篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第250题(顺位题号是1046)。有一个石头集合,每个石头都有一个正整数重量值。 每次,我们选择两块最重的岩石并将它们粉碎在一起。假设石头的重量为x和y,x <= y。粉碎的结果是: 如果x == y,两块石头都被完全粉碎; 如果x != y,重量为x的石头被完全粉碎,重量...

小川的博客 607

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Leetcode 1046.最后一块石头的重量(Last Stone Weight)

Leetcode 1046.最后一块石头的重量 1 题目描述(Leetcode题目链接)   有一堆石头,每块石头的重量都是正整数。 每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下: 如果 x == y,那么两块石头都会被完全粉碎; 如果 x != y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x。 最后,最多只会剩下一块石头。返回此石头的重量。如果没有石头剩下,就返回 0。 输入:[

qq_39378221的博客 258

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

LeetCode-1046. Last Stone Weight(最后一块石头的重量)

最后一块石头的重量 Last Stone Weight 解 降序排序,每次 选取最重的。应该算是贪心吧。 由于C语言没有sort函数,所以这里用的是并归排序 void Merge(int a[], int left, int mid, int right) { int len = right - left + 1;//数组长度 int temp[len]; int k ...

三九_感冒灵的博客 446

LeetCode:1046. Last Stone Weight最后一块石头的重量(C语言)

题目描述: 有一堆石头,每块石头的重量都是正整数。 每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下: 如果 x == y,那么两块石头都会被完全粉碎; 如果 x != y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x。 最后,最多只会剩下一块石头。返回此石头的重量。如果没有石头剩下,就返回 0。 示例: 输入:[2,7,4,1,8,1] 输出:1 解释: 先选出 7 和 8,得到 1,所

C/C++攻城狮 571

【LeetCode】1046. Last Stone Weight 最后一块石头的重量(Easy)(JAVA)每日一题

【LeetCode】1046. Last Stone Weight 最后一块石头的重量(Easy)(JAVA) 题目地址: https://leetcode.com/problems/last-stone-weight/ 题目描述: We have a collection of stones, each stone has a positive integer weight. Each turn, we choose the two heaviest stones and s

qq_16927853的博客 241

leetcode 1046. Last Stone Weight 最后一块石头的重量-耗时100

Problem:耗时100%,优先队列的,数字全部放入队列中,每次那两个,大小相减差若不是0则放入队列。

邹九的个人博客 81

LeetCode—1046. 最后一块石头的重量(Last Stone Weight)——分析及代码(Java)

LeetCode—1046. 最后一块石头的重量[Last Stone Weight]——分析及代码[Java]一、题目二、分析及代码1. 最大堆(1)思路(2)代码(3)结果三、其他 一、题目 有一堆石头,每块石头的重量都是正整数。 每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下: 如果 x == y,那么两块石头都会被完全粉碎; 如果 x != y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量

江南土豆的博客 318

【LeetCode】1046. Last Stone Weight 解题报告(Python & C++)

作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录题目描述题目大意解题方法大根堆日期 题目地址:https://leetcode.com/problems/last-stone-weight/ 题目描述 We have a collection of rocks, each rock has a positive integer ...

负雪明烛 2764

leetcode 1046. Last Stone Weight

目录 一、问题分析 二、代码实现 1、大顶堆 2、桶排序 https://leetcode.com/problems/last-stone-weight/ 给定一个石头的集合,每个石头的重量为正数,每次拿两个石头进行碰撞:若一样重,则不添加石头;若一轻一重,则添加两者重量之差的绝对值的石头。最终集合中最多只剩一个石头,如果剩余1个则返回其重量;如果没有石头则返回0 一、问...

小景的博客 392

1046. Last Stone Weight*

1046. Last Stone Weight* https://leetcode.com/problems/last-stone-weight/ 题目描述 We have a collection of rocks, each rock has a positive integer weight. Each turn, we choose the two heaviest rocks and s...

珍妮的选择的博客 391

leetcode 1046 Last Stone Weight

最后一块石头的重量 题意: 我们有一个岩石集合,每个岩石都有一个正整数权重。 每转一圈,我们选择两个最重的 岩石并将它们粉碎在一起。假设石头有重量x并且y与x <= y。粉碎的结果是: 如果x == y,则两块石头都被完全摧毁; 如果x != y,重量的石头x被完全破坏了,重量的石头y有了新的重量y-x。 最后,最多剩下1块石头。返回此石头的重量(如果没有石头,则返回0。) 范例1: 输入...

qq_45403860的博客 142

【Leetcode】1046. Last Stone Weight(第137周周赛)(优化)

We have a collection of rocks, each rock has a positive integer weight. Each turn, we choose the twoheaviestrocksand smash them together. Suppose the stones have weightsxandywithx <= y. ...

小I的博客 331

LeetCode:1046.Last Stone Weight

problem: We have a collection of stones, each stone has a positive integer weight. Each turn, we choose the two heaviest stones and smash them together. Suppose the stones have weights x and y with x...

erzhushashade的博客 224

【leetcode】1046. Last Stone Weight

题目如下: We have a collection of rocks, each rock has a positive integer weight. Each turn, we choose the twoheaviestrocksand smash them together. Suppose the stones have weightsxandywithx &...

weixin_34221332的博客 156
上一篇: leetcode 923. 3Sum With Multiplicity(含重复数字的3Sum)
下一篇: SOLD2算法之3: 特征点与heatmap结合检测有效线段(CVPR 2021)
蓝羽飞鸟
博客等级 码龄8年 1万+粉丝 727原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝羽飞鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值