leetcode 1046. 最后一块石头的重量(堆)

有一堆石头,每块石头的重量都是正整数。

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

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

示例:

输入:[2,7,4,1,8,1]
输出:1
解释:
先选出 7 和 8,得到 1,所以数组转换为 [2,4,1,1,1],
再选出 2 和 4,得到 2,所以数组转换为 [2,1,1,1],
接着是 2 和 1,得到 1,所以数组转换为 [1,1,1],
最后选出 1 和 1,得到 0,最终数组转换为 [1],这就是最后剩下那块石头的重量。

代码

class Solution {public int lastStoneWeight(int[] stones) {PriorityQueue<Integer> priorityQueue=new PriorityQueue<>((o1, o2) -> o2-o1);//大顶堆for(int c:stones)priorityQueue.add(c);while (priorityQueue.size()>1)//每次堆顶的两个元素出队{int a=priorityQueue.poll();int b=priorityQueue.poll();if(a-b>0) priorityQueue.add(a-b);}return priorityQueue.isEmpty()?0:priorityQueue.poll();}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/392404.shtml

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

相关文章

java2d方法_Java SunGraphics2D.fillRect方法代码示例

import sun.java2d.SunGraphics2D; //导入方法依赖的package包/类/*** Return a non-accelerated BufferedImage of the requested type with the* indicated subimage of the original image located at 0,0 in the new image.* If a bgColor is supplied, composite the orig…

js建立excel表格_建立Excel足球联赛表格-传统vs动态数组方法

js建立excel表格介绍 (Introduction) I am going to show you the different ways you can build a football league table in Excel. Some of the methods are old school but others utilise Excel’s new capabilities.我将向您展示在Excel中建立足球联赛表格的不同方法。 其…

postman+newman生成html报告

作为测试菜鸟,在学习postmannewman的使用过程中真的是颇费周折......没办法技术太菜,只能多学习. postman的下载安装不多言说,下载地址:https://www.getpostman.com/downloads/ newman的安装过程: 1.首先需要安装node.js,可以去官网下载,地址:https://nodejs.org/en/#download …

java jdk1.9新特性_JDK1.9-新特性

1. Java平台级模块系统该特性使Java9最大的一个特性&#xff0c;Java提供该功能的主要的动机在于&#xff0c;减少内存的开销&#xff0c;JVM启动的时候&#xff0c;至少会有30~60MB的内存加载&#xff0c;主要原因是JVM需要加载rt.jar&#xff0c;不管其中的类是否被classload…

如何在10分钟内让Redux发挥作用

Hi everyone ❤️大家好❤️ For a while now I’ve been hearing my friends and colleagues complaining about how hard it was to get into Redux.一段时间以来&#xff0c;我一直在听我的朋友和同事抱怨进入Redux有多困难。 I run a freeCodeCamp Study Group in the So…

两个链接合并_如何找到两个链接列表的合并点

两个链接合并了解问题 (Understand the Problem) We are given two singly linked lists and we have to find the point at which they merge.我们给了两个单链表&#xff0c;我们必须找到它们合并的点。 [SLL 1] 1--->3--->5 \ …

安装veket到移动硬盘NTFS分区

如果你已经看过《手动安装veket到硬盘》和《简单的将veket安装到U盘的方法》两篇文章并且安装成功的话&#xff0c;说明不适用本文的安装环境&#xff0c;就不用往下看了。 《手动安装veket到硬盘》一文采用grub4dos来引导硬盘上的veket&#xff0c;主要是用来在本机已安装Wind…

简书使用小技巧

1、不同字体  在 设置->基础设置->富文本 模式下可以实现 2、添加图片&#xff0c;让文章更生动 3、添加代码框 &#xff01;注意&#xff1a;设置为Markdown模式后&#xff0c;只对新创建的文章起作用。转载于:https://www.cnblogs.com/HMJ-29/p/7049540.html

掩码 项目编码_每天进行20天的编码项目

掩码 项目编码by Angela He通过何安佳 每天进行20天的编码项目 (A coding project a day for 20 days) 我如何在20天内自学Web开发 (How I taught myself web development in 20 days) It was the first day of winter break for Stanford students. Back at home, I opened a…

java循环一年月份天数和_javawhile循环编写输入某年某月某日,判断这一天是这一年的第几…...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼public class ZuoYe9 {public static void main(String[] args) {int days0; //存储变量这一年的第几天//1.输入年&#xff0c;月&#xff0c;日Scanner inputnew Scanner(System.in);System.out.println("请输入年份&#xf…

leetcode 605. 种花问题(贪心算法)

假设你有一个很长的花坛&#xff0c;一部分地块种植了花&#xff0c;另一部分却没有。可是&#xff0c;花卉不能种植在相邻的地块上&#xff0c;它们会争夺水源&#xff0c;两者都会死去。 给定一个花坛&#xff08;表示为一个数组包含0和1&#xff0c;其中0表示没种植花&…

工程师的成熟模型_数据工程师的成熟度

工程师的成熟模型数据科学与机器学习 (DATA SCIENCE AND MACHINE LEARNING) What does a data engineer do?数据工程师做什么&#xff1f; Let’s start with three big wars that we need to understand before understanding what a data engineer does.让我们从理解数据工…

杭电2064

此题是一道简单的递归 此题是一道递归运算题&#xff0c;这题又是一道汉诺塔问题&#xff01;&#xff01;&#xff01;只要了解其规律&#xff0c;呵呵&#xff0c;你就可以很快AC了&#xff01;&#xff01; 这是一般的汉诺塔问题的解题方法照片&#xff01;&#xff01;&…

/ ./ ../ 的区别

/ 根目录 &#xff08;绝对路径&#xff09; ./ 当前目录 ../父级目录 &#xff08;相对路径&#xff09; ./home是当前目录下的一个叫home的目录/home是绝对路径的/home就是根下的home目录转载于:https://www.cnblogs.com/sjd1118/p/7055475.html

java设置表格列不可修改_Java DefaultTableModel使单元格不可编辑JTable

参见英文答案 >How to make a JTable non-editable 7个我有一个JAVA项目,并希望使用DefaultTableModel使我的JTable不可编辑.我知道一个解决方法,称为&#xff1a;JTable table new JTable(...){public boolean isCellEditable(int row…

阻塞队列实现

⭐ 作者&#xff1a;小胡_不糊涂 &#x1f331; 作者主页&#xff1a;小胡_不糊涂的个人主页 &#x1f4c0; 收录专栏&#xff1a;JavaEE &#x1f496; 持续更文&#xff0c;关注博主少走弯路&#xff0c;谢谢大家支持 &#x1f496; 阻塞队列 1. 什么是阻塞队列2. 标准库中的…

graphql入门_GraphQL入门指南

graphql入门by Leonardo Maldonado莱昂纳多马尔多纳多(Leonardo Maldonado) GraphQL入门指南 (A Beginner’s Guide to GraphQL) One of the most commonly discussed terms today is the API. A lot of people don’t know exactly what an API is. Basically, API stands fo…

leetcode 239. 滑动窗口最大值(单调队列)

给你一个整数数组 nums&#xff0c;有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回滑动窗口中的最大值。 示例 1&#xff1a; 输入&#xff1a;nums [1,3,-1,-3,5,3,6,7], k 3 输出…

scrape创建_确实在2分钟内对Scrape公司进行了评论和评分

scrape创建网页搜罗&#xff0c;数据科学 (Web Scraping, Data Science) In this tutorial, I will show you how to perform web scraping using Anaconda Jupyter notebook and the BeautifulSoup library.在本教程中&#xff0c;我将向您展示如何使用Anaconda Jupyter笔记本…

ArcGIS自定义高程

没写呢。 转载于:https://www.cnblogs.com/jiangyuanjia/p/11220183.html