天津网站建设方案报价,网站建设的完整流程图,建站设计网站,模板网站seo目录
1921. 消灭怪物的最大数量
题目描述#xff1a;
实现代码与解析#xff1a;
贪心
原理思路#xff1a; 1921. 消灭怪物的最大数量
题目描述#xff1a; 你正在玩一款电子游戏#xff0c;在游戏中你需要保护城市免受怪物侵袭。给你一个 下标从 0 开始 且长度为 …目录
1921. 消灭怪物的最大数量
题目描述
实现代码与解析
贪心
原理思路 1921. 消灭怪物的最大数量
题目描述 你正在玩一款电子游戏在游戏中你需要保护城市免受怪物侵袭。给你一个 下标从 0 开始 且长度为 n 的整数数组 dist 其中 dist[i] 是第 i 个怪物与城市的 初始距离单位米。
怪物以 恒定 的速度走向城市。给你一个长度为 n 的整数数组 speed 表示每个怪物的速度其中 speed[i] 是第 i 个怪物的速度单位米/分。
怪物从 第 0 分钟 时开始移动。你有一把武器并可以 选择 在每一分钟的开始时使用包括第 0 分钟。但是你无法在一分钟的中间使用武器。这种武器威力惊人一次可以消灭任一还活着的怪物。
一旦任一怪物到达城市你就输掉了这场游戏。如果某个怪物 恰 在某一分钟开始时到达城市这会被视为 输掉 游戏在你可以使用武器之前游戏就会结束。
返回在你输掉游戏前可以消灭的怪物的 最大 数量。如果你可以在所有怪物到达城市前将它们全部消灭返回 n 。
示例 1
输入dist [1,3,4], speed [1,1,1]
输出3
解释
第 0 分钟开始时怪物的距离是 [1,3,4]你消灭了第一个怪物。
第 1 分钟开始时怪物的距离是 [X,2,3]你没有消灭任何怪物。
第 2 分钟开始时怪物的距离是 [X,1,2]你消灭了第二个怪物。
第 3 分钟开始时怪物的距离是 [X,X,1]你消灭了第三个怪物。
所有 3 个怪物都可以被消灭。
示例 2
输入dist [1,1,2,3], speed [1,1,1,1]
输出1
解释
第 0 分钟开始时怪物的距离是 [1,1,2,3]你消灭了第一个怪物。
第 1 分钟开始时怪物的距离是 [X,0,1,2]你输掉了游戏。
你只能消灭 1 个怪物。示例 3
输入dist [3,2,4], speed [5,3,2]
输出1
解释
第 0 分钟开始时怪物的距离是 [3,2,4]你消灭了第一个怪物。
第 1 分钟开始时怪物的距离是 [X,0,2]你输掉了游戏。
你只能消灭 1 个怪物。
实现代码与解析
贪心
class Solution {
public:int eliminateMaximum(vectorint dist, vectorint speed) {int n dist.size();vectorint times(n, 0);for (int i 0; i n; i) // 到达时间times[i] (dist[i] - 1) / speed[i]; // 向下取整sort(times.begin(), times.end());for (int i 0; i n; i)if (times[i] i) return i; // 到达时间小于开枪时间return n;}
};
原理思路 简单题看代码就行。