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

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

每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎。假设石头的重量分别为 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();int c= Math.abs(a-b);if(c>0) priorityQueue.offer(c);//如果大小不一,将剩下的入队}return priorityQueue.size()==1?priorityQueue.poll():0;}
}

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

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

相关文章

[Linux]几个armhf的ubuntu源

摘自百度贴吧&#xff0c;留存 http://mirrors.ustc.edu.cn/ubuntu-ports/http://ftp.ubuntu-tw.org/mirror/ubuntu-ports/http://mirror.csclub.uwaterloo.ca/ubuntu-ports/http://mirrors.mit.edu/ubuntu-ports/ 速度从上到下越来越慢 中科技大 > 台湾新北 > 滑铁卢大学…

asp.net Linux 界面,在 ASP.NET 中实现不同角色的用户使用不同登录界面的方法

很多用户在开发 ASP.NET应用程序时都有这样的需求&#xff1a;管理员角色的账户使用管理员的登录界面进行登录&#xff0c;普通用户角色的账户使用普通用户的登录界面进行登录。由于ASP.NET的web.config里只能使用一个 authentication mode"Forms"节点&#xff0c;所…

pandas之Series

知识点 Pandas的数据类型有两种&#xff1a;1、Series 一维&#xff0c;带标签数组2、DataFrame 二维&#xff0c;Series容器Serial对象本质上由两个数组构成&#xff0c;一个数组构成对象的健(index,索引),一个数组构成对象的值(values).因此Series可以看作是键值对(健-->值…

python快乐数字怎么表达_Python经典面试题:这些面试题你会了吗?

前言什么&#xff1f;你要去找工作&#xff1f;先别急着找工作&#xff0c;先把下面的python面试题先给看了吧&#xff0c;不然你就只是去面试而不是找工作。话说不打没准备的仗&#xff0c;下面这些基本的面试题都不会你怎么可能找到工作呢&#xff1f;还是先把下面的东西1、P…

【swift学习笔记】三.使用xib自定义UITableViewCell

使用xib自定义tableviewCell看一下效果图 1.自定义列 新建一个xib文件 carTblCell&#xff0c;拖放一个UITableViewCell,再拖放一个图片和一个文本框到tableviewcell上 并给我们的xib一个标识 为了学习&#xff0c;我这里的xib和后台的class是分开建的。我们再建一个cocoa touc…

leetcode455. 分发饼干(贪心算法)

假设你是一位很棒的家长&#xff0c;想要给你的孩子们一些小饼干。但是&#xff0c;每个孩子最多只能给一块饼干。对每个孩子 i &#xff0c;都有一个胃口值 gi &#xff0c;这是能让孩子们满足胃口的饼干的最小尺寸&#xff1b;并且每块饼干 j &#xff0c;都有一个尺寸 sj 。…

slack 使用说明_我如何使用Node和Botkit构建HR Slack Bot

slack 使用说明为什么要创建Slack Bot&#xff1f; (Why create a Slack Bot ?) I am an HR professional. More specifically I am a Human Resources Information System (HRIS) Consultant. I work with Application Tracking Systems, Learning Management Systems, and C…

linux 监听数据包,linux下网络监听与发送数据包的方法(即libpcap、libnet两种类库的使用方法)...

linux下可以用libpcap函数库实现监听数据包&#xff0c;使用libnet 函数库发送数据包安装:在命令行下apt-get install 就可以了libpcap的使用:/*author hjjdate 2011-1-21function:capture packet with the ruler and output the packet informationmodify 2011-1-23function:g…

命令模式(Command Pattern)

1命令模式是一个高内聚的模式。定义如下&#xff1a;将一个请求封装成一个对象&#xff0c;从而让你使用不同的请求把客户端参数化&#xff0c;对请求排队或者记录请求日志&#xff0c;可以提供命令的撤销和恢复功能。 2.角色说明&#xff1a; ● Receive接收者角色 该角色就…

BZOJ 3270: 博物馆

传送门 显然可以状态转移&#xff1a; 设 $f[k][x][y]$ 表示第 $k$ 时刻&#xff0c;第一个人在 $x$ &#xff0c;第二个人在 $y$ 时的概率 那么转移显然&#xff1a; $f[k][x][y]\sum_{u}\sum_{v}f[k-1][u][v]*(1-P_u)(1-P_v)/du[u]/du[v]$ 其中 $u$ 和 $x$ 有边相连&#xff…

graphpad7.04多组比较p值_同是折线图为何你却这么优秀,这才是多组数据作图应该有的样子...

相信大家对Excel做折线图应该不陌生&#xff0c;在展示数据的时候&#xff0c;图表是一种最好的展示方法。但是经常会碰到一种尴尬的事情就是&#xff0c;当数据维多比较多的时候&#xff0c;做出的图表就会显得非常难看。今天我们就来学习一下&#xff0c;多组数据怎么做折线图…

Logic-算法-八个箱子找一个最轻的

ylbtech-Arithmetic:Logic-算法-八个箱子找一个最轻的-- -- ylb&#xff1a;算法-- Type:算法[logic]-- munu:八个箱子-找一个最轻的-- thankyou:gaoZhimin -- 7:11 2012/3/17-- 有八个正方形的箱子&#xff0c;外观大小都一样&#xff0c;其中七个是50斤的&#xff0c;一个是…

由衷的信来激励有抱负的开发人员

by Logan Wright洛根赖特(Logan Wright) 由衷的信来激励有抱负的开发人员 (A heartfelt letter to inspire the aspiring developer) I’m writing a letter to my friend. You should read it. He studies Computer Science, and he hates it. I build React Apps and I love…

linux 运行 chom,Hadoop安装-单节点/伪分布(2.7.3)

1&#xff0c;下载Hadoop目前在Ubuntu的软件库里面 没有发现Hadoop的压缩包&#xff0c;没猜错Hadoop不是可执行文件 只是一个压缩包吧&#xff01;所以我们只能自己到官网下载(http://hadoop.apache.org/releases.html)&#xff1b;在Apache社区中&#xff0c;下载软件的时候…

leetcode944. 删列造序

给定由 N 个小写字母字符串组成的数组 A&#xff0c;其中每个字符串长度相等。 你需要选出一组要删掉的列 D&#xff0c;对 A 执行删除操作&#xff0c;使 A 中剩余的每一列都是 非降序 排列的&#xff0c;然后请你返回 D.length 的最小可能值。 删除 操作的定义是&#xff1…

python学习:re模块

常用正则表达式符号 123456789101112131415161718192021. 默认匹配除\n之外的任意一个字符&#xff0c;若指定flag DOTALL,则匹配任意字符&#xff0c;包括换行^ 匹配字符开头&#xff0c;若指定flags MULTILINE,这种也可以匹配上(r"^a","\nabc\neee&qu…

app之---豆果美食

1.抓包 2.代码 抓取&#xff1a; #!/usr/bin/env python # -*- coding: utf-8 -*- #author tom import requests from multiprocessing import Queue from handle_pymongo import mongo from concurrent.futures import ThreadPoolExecutorclass Douguo():def __init__(self):s…

语言坐标度分秒的换算_测量位置度说明

测量位置度说明位置度是限制被测要素的实际位置对理想位置变动量的指标。它的定位尺寸为理论正确尺寸。位置度公差在评定实际要素位置的正确性, 是依据图样上给定的理想位置。位置度包括点的位置度、线的位置度和面的位置度。[1] 点的位置度:如公差带前加S&#xffe0;&#xf…

OpenStack创建win7实例遇到的问题(尚未解决,求帮助)

原地址在这里&#xff1a;&#xff08;作者也是我&#xff0c;害羞&#xff09;http://www.aboutyun.com/forum.php?modviewthread&tid22898 小白经过两天尝试&#xff0c;用fuel部署好了OpenStack的云平台&#xff0c;接下来想在Compute节点上创建一个win7 实例&#xff…

VMware使两台windows虚拟机能够互相ping通

如果以下内容测试无效&#xff0c;可参考另一篇&#xff1a;VMware虚拟机配置内网电脑能访问 1.关闭防火墙 cmd命令行里输入&#xff1a;netsh firewall set opmode disable 2.测试如果还不能ping通&#xff0c;就把网络类型选nat类型 3.测试&#xff1a;vmware网关默认是.2 转…