文章目录

  • 1. 题目
  • 2. 解题

1. 题目

给你一个整数 mass ,它表示一颗行星的初始质量。
再给你一个整数数组 asteroids ,其中 asteroids[i] 是第 i 颗小行星的质量。

你可以按 任意顺序 重新安排小行星的顺序,然后让行星跟它们发生碰撞。如果行星碰撞时的质量 大于等于 小行星的质量,那么小行星被 摧毁 ,并且行星会 获得 这颗小行星的质量。否则,行星将被摧毁。

如果所有小行星 都 能被摧毁,请返回 true ,否则返回 false 。

示例 1:
输入:mass = 10, asteroids = [3,9,19,5,21]
输出:true
解释:一种安排小行星的方式为 [9,19,5,3,21] :
- 行星与质量为 9 的小行星碰撞。新的行星质量为:10 + 9 = 19
- 行星与质量为 19 的小行星碰撞。新的行星质量为:19 + 19 = 38
- 行星与质量为 5 的小行星碰撞。新的行星质量为:38 + 5 = 43
- 行星与质量为 3 的小行星碰撞。新的行星质量为:43 + 3 = 46
- 行星与质量为 21 的小行星碰撞。新的行星质量为:46 + 21 = 67
所有小行星都被摧毁。示例 2:
输入:mass = 5, asteroids = [4,9,23,4]
输出:false
解释:
行星无论如何没法获得足够质量去摧毁质量为 23 的小行星。
行星把别的小行星摧毁后,质量为 5 + 4 + 9 + 4 = 22 。
它比 23 小,所以无法摧毁最后一颗小行星。提示:
1 <= mass <= 10^5
1 <= asteroids.length <= 10^5
1 <= asteroids[i] <= 10^5

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/destroying-asteroids
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 贪心,先吸收最小的行星的质量,确保质量能 >= 小行星
class Solution:def asteroidsDestroyed(self, mass: int, asteroids: List[int]) -> bool:asteroids.sort()for m in asteroids:if mass >= m:mass += melse:return Falsereturn True

144 ms 24.4 MB Python3

题解区有一种 O(n) 的解法,将小行星质量按照 [ 2n, 2n+1] 分桶,如果 mass >= 桶内最小的 m0,那么 mass + m0 >= 2*m0 >= 桶内最大的


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 2126. 摧毁小行星(贪心)相关推荐

  1. LeetCode 2126. 摧毁小行星

    文章目录 一.题目 1.题目描述 2.基础框架 3.原题链接 二.解题报告 1.思路分析 2.时间复杂度 3.代码详解 三.本题小知识 四.加群须知 一.题目 1.题目描述   给你一个整数 mass ...

  2. 【C语言刷LeetCode】2126. 摧毁小行星(M)

    [ 给你一个整数 mass ,它表示一颗行星的初始质量.再给你一个整数数组 asteroids ,其中 asteroids[i] 是第 i 颗小行星的质量. 你可以按 任意顺序 重新安排小行星的顺序, ...

  3. Leetcode2126. 摧毁小行星

    Every day a leetcode 题目来源:2126. 摧毁小行星 解法1:贪心 对于两个不同质量的小行星,优先摧毁质量较小的小行星可以摧毁更多的小行星. 所以,基于贪心的思想,将小行星按质量 ...

  4. leetcode学习记录_贪心

    贪心的特点就是不断求得局部最优解 然后用局部最优解求得全局最优解 55. 跳跃游戏 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 . 数组中的每个元素代表你在该位置可以跳跃的最大长度 ...

  5. 比较、排序、数字溢出[5969] 摧毁小行星

    5969. 摧毁小行星 给你一个整数 mass ,它表示一颗行星的初始质量.再给你一个整数数组 asteroids ,其中 asteroids[i] 是第 i 颗小行星的质量. 你可以按 任意顺序 重 ...

  6. Leetcode刷题:贪心算法

    文章目录 一.算法思想 二.分配问题 2.1 Leetcode 455 2.1.1 题目描述 2.1.2 输入输出格式 2.1.3求解思路 2.1.4 代码示例(C++) 2.2 Leetcode 1 ...

  7. leetcode刷题:贪心算法08(加油站)

    134. 加油站 力扣题目链接 在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升. 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 co ...

  8. 170. Leetcode 135. 分发糖果 (贪心算法-两个维度权衡题目)

    这道题目一定是要确定一边之后,再确定另一边,例如比较每一个孩子的左边,然后再比较右 边,如果两边一起考虑一定会顾此失彼. 先确定右边评分大于左边的情况(也就是从前向后遍历) 此时局部最优:只要右边评分 ...

  9. LeetCode 881. 救生艇(贪心,双指针)

    1. 题目 第 i 个人的体重为 people[i],每艘船可以承载的最大重量为 limit. 每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit. 返回载到每一个人所需的最小船数.( ...

最新文章

  1. 时间可以是二维的?基于二维时间图的视频内容片段检测 | AAAI 2020
  2. Hibernate之查询中get()和load()的区别,list()和iterate()的区别
  3. Java阶段性测试--知识点:数组,面向对象,集合、线程,IO流
  4. strictmath_Java StrictMath rint()方法与示例
  5. 设计即开发,如何打通软件研发的“任督二脉”?
  6. anaconda下载
  7. python第三方库的安装方式_Python第三方库的几种安装方式(小结)
  8. Pytorch之Optim(优化器)
  9. H5标签在页面被转译
  10. 树莓派安装系统和系统备份还原
  11. 逻辑漏洞——忘记密码、重置密码(案例分析、原理)
  12. 将 laravel 项目内静态文件,css、js、images 部署到七牛云 CDN
  13. 打造个人云数据生活解决方案示例
  14. 【paper笔记】Personalized Top-N Sequential Recommendation via Convolutional Sequence Embedding
  15. python plt绘制多子图
  16. 7.(css)使用浮动布局学成网案例
  17. win10系统下jdk环境变量配置
  18. three.js 07-06 之 Sprite 一幅图片多个精灵
  19. 【FreeRTOS】队列管理
  20. 未能加载文件或程序集 Renci.SshNet, Version=2016.1.0.0, Culture=neutral, PublicKeyToken= 1cee9f8bde3db106或它的某

热门文章

  1. 面试之 Mysql 汇总
  2. 【数据分析】reshape(-1,1)和numpy的广播机制
  3. 普通人学python有意义吗_学python难吗
  4. python中交换a和b的值_交换A和B之间的元素以获得和相等
  5. leetcood学习笔记-2-两数相加
  6. Day 02 第二天课时总结
  7. asp.net 开发注意的几点
  8. 重装系统失败后怎么用好系统U盘启动解决?
  9. Runtime消息动态解析与转发流程
  10. 判断对象oStringObject是否为String