笔试算法模拟题精解之“Codancer的炸弹引爆”

简介: 花费8电力引爆第3枚炸弹,那么第1枚就会被自动引爆,那么第2枚也会被自动引爆。这种方案的花费是最小的。

【在线编程产品介绍】

阿里云开发者社区在线编程:

免费刷题大神器,助你拿到好offer

周赛月赛不停歇,做题还能领奖品

大赛笔试全真题,常做常新有惊喜

点击链接开始产品体验:https://developer.aliyun.com/coding

本文为大家介绍的是“121.Codancer的炸弹引爆”的解法探究。先来看一下题目内容:

题目详情

等级:困难
知识点:贪心、优先队列
查看题目:Codancer的炸弹引爆

Codancer终于抵达了恶龙的城堡。现在他在城堡周围摆放了n枚电力炸弹,每个电力炸弹有两种属性m和p,只有已经引爆了m枚电力炸弹或者Codancer直接花费p的电力,第i枚炸弹才会被引爆,现在Codancer想使用最少的电力引爆所有的炸弹,请计算最少需要多少电力?

第一行是一个正整数n,代表有n枚电力炸弹。接下来输入n行,每行两个正整数m和p,代表炸弹的属性。(1<=n<200000,1<=p<=100,1<=m<=n)

输出最少花费多少的电力。

示例1
输入:
3
[[1,5],[2,10],[2,8]]
输出:
8
注意
花费8电力引爆第3枚炸弹,那么第1枚就会被自动引爆,那么第2枚也会被自动引爆。

解题方法:

花费8电力引爆第3枚炸弹,那么第1枚就会被自动引爆,那么第2枚也会被自动引爆。

这种方案的花费是最小的。

image.png

炸弹的引爆顺序如图所示。

本题使用贪心策略,考虑按照所需要的电力从大到小排序,假设从第i+1枚到第n枚炸弹已经用电力引爆的炸弹个数为cnt,由于在[1,i-1]最多再引爆i-1枚炸弹,如果此时i-1+cnt<mi,说明就需要再花费电力引爆,但是必须要选择需要的电力最少的,因此可以用优先队列维护,直接取出栈顶即可。

时间复杂度:O(n*log(n))

看完之后是不是有了答题思路了呢,快来练练手吧:121.Codancer的炸弹引爆

在线编程周赛、月赛火热进行中,更有限时答题活动,定制卫衣、双肩背包、机械键盘等多重好礼等你来拿~每天都有好礼相送~点击了解周赛详情:在线编程3月份比赛正式开启!机械键盘等你拿!

b462f1d86b44481ca24c0ad63fe55948.png

相关文章
|
6月前
|
算法 搜索推荐 Java
Java数据结构 -- 常见算法分析(查找算法、排序算法)精解详解!!!
Java数据结构 -- 常见算法分析(查找算法、排序算法)精解详解!!!
61 0
|
6月前
|
编解码 算法 前端开发
往年 | 大疆雷达算法校招笔试题目解析
往年 | 大疆雷达算法校招笔试题目解析
484 1
|
算法 Java
代码随想录算法训练营第三十四天 | LeetCode 860. 柠檬水找零、406. 根据身高重建队列、452. 用最少数量的箭引爆气球
代码随想录算法训练营第三十四天 | LeetCode 860. 柠檬水找零、406. 根据身高重建队列、452. 用最少数量的箭引爆气球
67 0
|
算法
压缩算法 【腾讯2020校园招聘-后台&综合-第一次笔试 】
压缩算法 【腾讯2020校园招聘-后台&综合-第一次笔试 】
86 0
算法训练Day35|860.柠檬水找零 ● 406.根据身高重建队列 ● 452. 用最少数量的箭引爆气球
算法训练Day35|860.柠檬水找零 ● 406.根据身高重建队列 ● 452. 用最少数量的箭引爆气球
|
算法 网络协议
骚戴独家笔试---算法篇4
骚戴独家笔试---算法篇4
64 1
|
存储 算法
骚戴独家笔试---算法篇3
骚戴独家笔试---算法篇3
203 0
骚戴独家笔试---算法篇3
|
搜索推荐
7大排序算法-- 堆排 快速排序 --精解(下)
7大排序算法-- 堆排 快速排序 --精解(下)
85 0
|
搜索推荐
7大排序算法-- 堆排 快速排序 --精解(上)
7大排序算法-- 堆排 快速排序 --精解
52 0
|
搜索推荐 算法
7大排序算法-- 直接插入,希尔,冒泡,选择 --精解(下)
7大排序算法-- 直接插入,希尔,冒泡,选择 --精解(下)
130 0
下一篇
无影云桌面