力扣 leetcode 1046. 最后一块石头的重量 (python)
Topic:
有一堆石头,每块石头的重量都是正整数。
每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下:
如果 x == y,那么两块石头都会被完全粉碎;
如果 x != y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x。
最后,最多只会剩下一块石头。返回此石头的重量。如果没有石头剩下,就返回 0。
Example:
输入:[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],这就是最后剩下那块石头的重量。
Solution:
首先对stones进行排序
将最大的两块石头进行对比
若重量不一样则进行大减小且弹出两块石头,同时将减去后的值重新加入序列
若重量一样则弹出两块石头
重复如上过程直到:
若最后仅剩一块是石头最后将石头的重量返回
若最后无石头返回0
Code:
class Solution:def lastStoneWeight(self, stones: List[int]) -> int:stones.sort()while True:if len(stones) == 1:return stones[0]if len(stones) == 0:return 0if stones[-2] == stones[-1]:stones.pop()stones.pop()stones.sort()elif stones[-1] >= stones[-2]:a = stones.pop()b = stones.pop()stones.append(a - b)stones.sort()
Result:
力扣 leetcode 1046. 最后一块石头的重量 (python)相关推荐
- 力扣题解-1046. 最后一块石头的重量
题目:1046. 最后一块石头的重量 有一堆石头,每块石头的重量都是正整数. 每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎.假设石头的重量分别为 x 和 y,且 x <= y.那么粉 ...
- LeetCode 1046. 最后一块石头的重量(priority_queue 堆)
1. 题目 有一堆石头,每块石头的重量都是正整数. 每一回合,从中选出两块最重的石头,然后将它们一起粉碎.假设石头的重量分别为 x 和 y,且 x <= y.那么粉碎的可能结果如下: 如果 x ...
- leetcode 1046 最后一块石头的重量
1046. 最后一块石头的重量 难度简单98收藏分享切换为英文接收动态反馈 有一堆石头,每块石头的重量都是正整数. 每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎.假设石头的重量分别为 x ...
- leetcode 1046. 最后一块石头的重量(堆)
有一堆石头,每块石头的重量都是正整数. 每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎.假设石头的重量分别为 x 和 y,且 x <= y.那么粉碎的可能结果如下: 如果 x == y ...
- LeetCode[1046]最后一块石头的重量
难度:简单 题目: 有一堆石头,每块石头的重量都是正整数. 每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎.假设石头的重量分别为 x 和 y,且 x <= y.那么粉碎的可能结果如下: ...
- 2022-2-19 Leetcode 1046.最后一块石头的重量
测试程序,觉得蛮对的.没有想明白错在哪里... #include<iostream> #include<vector> #include<string> #incl ...
- LeetCode 1049. 最后一块石头的重量 II(DP)
1. 题目 有一堆石头,每块石头的重量都是正整数. 每一回合,从中选出任意两块石头,然后将它们一起粉碎. 假设石头的重量分别为 x 和 y,且 x <= y.那么粉碎的可能结果如下: 如果 x ...
- 1046. 最后一块石头的重量
链接:1046. 最后一块石头的重量 题解: class Solution {public:int lastStoneWeight(vector<int>& stones) {st ...
- 2022-2-19 Leetcode 1049.最后一块石头的重量II
例二分析:26+21-40 = 7 33-31 = 2 7-2 = 5 相当于小块石头集合之后一起去砸大石头. 这道题和最后一块石头的重量I 有什么不同? 例子更复杂了.(虽然不知道复杂在哪里) 这道 ...
最新文章
- Python统计网站访问日志log中的IP信息,并排序。。
- Spring Cloud【Finchley】-05使用配置文件自定义Ribbon Client
- angular 模板
- 如何打开php页面跳转_php如何跳转页面
- web api接口开发实例_C# 物联网开发API接口系列(4)
- [BZOJ1260][CQOI2007]涂色paint 区间dp
- linux循环处理脚本命令,后端开发必须掌握的Linux命令[Shell脚本篇]
- php sqlite教程,在thinkPHP中使用sqlite的教程
- Python——调用shell命令的三种方法
- 软件开发的一些感想(五年工作总结版)
- 批量图片压缩、生成PDF文件及PDF文件压缩
- 推荐系统本质与网易严选实践
- 计算机调节音量找不到,电脑右下角的小喇叭不见了?教你这样操作,轻松调节音量!...
- 百度地图定位API+和风天气城市搜索API构成的天气定位模块
- 心形一行python_《心》字意思读音、组词解释及笔画数 - 新华字典 - 911查询
- RFM模型—零售数据实战
- SHOI 2002 百事世界杯之旅 题解
- python夯实基础日记-类详解
- Flink流批一体化处理框架
- 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java青岛恒星科技学院机房管理系统0k0u9
热门文章
- 阿里p7程序员:生活压力大,有房贷不敢离职,离职股票就没了
- MODIS NDVI下载处理 MOD13A1, win10
- bzoj 1984: 月下“毛景树” 线段树+树链剖分
- 一个屌丝程序猿的人生(二十三)
- 进制转换(10转8 2)
- 多智能体仿真环境NetLogo介绍之导入外部数据
- 指针、结构体、枚举类和文件
- java object数组转list_java 如何将ListObject[]转换成List实体?
- 科罗拉多大学波尔得分校计算机科学,CU Boulder的Computer Science「科罗拉多大学波德分校计算机科学系」...
- C语言(CED)智力大冲浪——贪心算法第一题