LeetCode 2126. 摧毁小行星(贪心)

文章目录

    • 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阿明),一起加油、一起学习进步!
Michael阿明

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

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

相关文章

bzoj:2018 [Usaco2009 Nov]农场技艺大赛

Description Input 第1行&#xff1a;10个空格分开的整数: N, a, b, c, d, e, f, g, h, M Output 第1行&#xff1a;满足总重量最轻&#xff0c;且用度之和最大的N头奶牛的总体重模M后的余数。 Sample Input 2 0 1 5 55555555 0 1 0 55555555 55555555Sample Output 51HINT 样例…

android操作系统+流量,为什么我的安卓操作系统走这么多流量?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼这是用流量管理软件拦截安卓os偷跑流量的记录&#xff01;国内的软件没个是能拦截系统联网的&#xff01; AppID :-1 应用程序名称:Kernel 总数据包阻塞:170 ff02:0000:0000:0000:0000:0000:0000:0016(1) 163.177.66.11(3) 58.250.…

八、一篇文章快速搞懂MySQL 常见的数据类型(整型、小数、字符型、日期型详解)

常见的数据类型 1、数值型&#xff1a; 整型 小数&#xff1a; 定点数 浮点数 2、字符型&#xff1a; 较短的文本&#xff1a;char、varchar 较长的文本&#xff1a;text、blob&#xff08;较长的二进制数据&#xff09; 3、日期型&#xff1a; 一、整型 1&#xff09;分类…

LeetCode 2129. 将标题首字母大写

文章目录1. 题目2. 解题1. 题目 给你一个字符串 title &#xff0c;它由单个空格连接一个或多个单词组成&#xff0c;每个单词都只包含英文字母。请你按以下规则将每个单词的首字母 大写 &#xff1a; 如果单词的长度为 1 或者 2 &#xff0c;所有字母变成小写。否则&#xf…

九、MySQL常见约束相关知识总结 学习笔记 + 强化复习(六大约束)

常见约束&#xff1a; 一、含义&#xff1a;一种限制&#xff0c;用于限制表中的数据&#xff0c;为了保证表中的数据的准确和可靠性 二、分类&#xff1a;六大约束 1、NOT NULL&#xff1a;非空&#xff0c;用于保证该字段的值不能为空 比如姓名、学号等 2、DEFAULT:默认&…

html 获取鼠标在canvas上的坐标,html5-canvas 检测鼠标在画布上的位置

示例本示例将说明如何获取鼠标相对于画布的位置&#xff0c;例如(0,0)HTML5 Canvas的左上角。的e.clientX和e.clientY将获得相对于文档的顶部位置的鼠标&#xff0c;来改变这种是基于画布的顶部&#xff0c;我们减去left&#xff0c;并right从客户端X和Y的画布位置var canvas …

LeetCode 2130. 链表最大孪生和(链表快慢指针+反转链表+双指针)

文章目录1. 题目2. 解题1. 题目 在一个大小为 n 且 n 为 偶数 的链表中&#xff0c;对于 0 < i < (n / 2) - 1 的 i &#xff0c;第 i 个节点&#xff08;下标从 0 开始&#xff09;的孪生节点为第 (n-1-i) 个节点 。 比方说&#xff0c;n 4 那么节点 0 是节点 3 的孪…

Splay初步【bzoj1503】

做了一道水题&#xff0c;把bzoj1503用Splay重新写了一下。 1 #include <bits/stdc.h>2 #define rep(i, a, b) for (int i a; i < b; i)3 #define REP(i, a, b) for (int i a; i < b; i)4 #define drep(i, a, b) for (int i a; i > b; i--)5 #define mp make…

原生html5时间组件,JFinal遇到了原生Html5时间组件格式转换问题怎么处理?

今天JBolt种子用户群里有人提问&#xff0c;JFinal针对原生Html5的日期时间选择组件的格式转换支持有问题&#xff0c;报错。于是我在JBolt的Demo中加入了这些去测试一下&#xff0c;这里使用的都是原生Html组件。Input type“text”默认就是一个简单的单行文本输入框。如果修改…

LeetCode 2131. 连接两字母单词得到的最长回文串

文章目录1. 题目2. 解题1. 题目 给你一个字符串数组 words 。words 中每个元素都是一个包含 两个 小写英文字母的单词。 请你从 words 中选择一些元素并按 任意顺序 连接它们&#xff0c;并得到一个 尽可能长的回文串 。每个元素 至多 只能使用一次。 请你返回你能得到的最长…

十、关于MySQL 标识列,你该了解这些!

标识列: 又称为自增长列 含义&#xff1a;可以不用手动的插入值&#xff0c;系统提供默认的序列值 特点&#xff1a; 1、标识列必须和主键搭配吗&#xff1f;不一定&#xff0c;但要求是一个key 2、一个表可以有几个标识列&#xff1f;至多一个&#xff01; 3、标识列的类型只…

svg defs 进行定义 引用

svg defs 进行定义 引用&#xff1a; <% page language"java" contentType"text/html; charsetUTF-8" pageEncoding"UTF-8"%> <%String path request.getContextPath();String basePath request.getScheme() "://" reque…

LeetCode 2132. 用邮票贴满网格图(DP/二维差分)

文章目录1. 题目2. 解题1. 题目 给你一个 m x n 的二进制矩阵 grid &#xff0c;每个格子要么为 0 &#xff08;空&#xff09;要么为 1 &#xff08;被占据&#xff09;。 给你邮票的尺寸为 stampHeight x stampWidth 。我们想将邮票贴进二进制矩阵中&#xff0c;且满足以下…

blue html中转换,BlueFox Free PDF to HTML Converter(PDF文件转换软件)

BlueFox Free PDF to HTML Converter是一款pdf文件转换软件&#xff0c;能直接查看PDF文件和对PDF文件进行编辑&#xff0c;支持批量进行转换&#xff0c;使用非常方便&#xff0c;操作简单&#xff0c;有需要可以下载。软件特色通过将PDF转换为HTML网页&#xff0c;您的网站访…

二、前端pink老师的CSS定位学习笔记(超详细,简单易懂)

定位(position) 1. CSS 布局的三种机制 网页布局的核心 —— 就是用 CSS 来摆放盒子位置。 CSS 提供了 3 种机制来设置盒子的摆放位置&#xff0c;分别是普通流、浮动和定位&#xff0c;其中&#xff1a; 普通流&#xff08;标准流&#xff09; 浮动 让盒子从普通流中浮起来 …

高可用+负载均衡 方案

高可用:keepalived / HeartBeat 负载: LVS / Haproxy 浅谈web应用的负载均衡、集群、高可用(HA)解决方案 《构建高性能web站点》笔记--基础架构篇 高可用可伸缩架构实用经验谈 amoeba是一个以MySQL为底层数据存储&#xff0c;并对应用提供MySQL协议接口的proxy。它集中地响应应…

LeetCode 2133. 检查是否每一行每一列都包含全部整数

文章目录1. 题目2. 解题1. 题目 对一个大小为 n x n 的矩阵而言&#xff0c;如果其每一行和每一列都包含从 1 到 n 的 全部 整数&#xff08;含 1 和 n&#xff09;&#xff0c;则认为该矩阵是一个 有效 矩阵。 给你一个大小为 n x n 的整数矩阵 matrix &#xff0c;请你判断…

上传图片自动加水印html,html5上传多个文件并添加水印 实例源码

【实例简介】【实例截图】【核心代码】html5上传多个文件并添加水印body{font-size:12px;}a{text-decoration:none;}a,a:after{-webkit-transition:all 0.3s;-moz-transition:all 0.3s;transition:all 0.3s;}a.btn i{display:block;width:100%;height:100%;position:relative;z…

三、关于网页布局你该知道这些!(布局总结:标准流、浮动、定位)

一个完整的网页&#xff0c;是标准流、浮动、定位一起完成布局的&#xff0c;三者都有自己专门的用法。 标准流 可以让盒子上下排列喝着左右排列&#xff0c;垂直的块级盒子显示就用标准流布局。浮动 可以让多个块级元素一行显示或者左右对齐盒子&#xff0c;多个块级盒子水平…

LoadRunner培训初级教程

一 LoadRunner简介 1.1 Loadrunner介绍 LoadRunner 是 HP Mercury Interactive用来测试应用程序性能的工具 LoadRunner 通过模拟一个多用户并行工作的环境来对应用程序进行负载测试。通过使用最少的硬件资源&#xff0c;这些虚拟用户提供一致的、可重复并可度量的负载&#xf…