5801. 消灭怪物的最大数量
题目出处:https://leetcode-cn.com/problems/eliminate-maximum-number-of-monsters/
思路:time[i]记录第i个怪物到达城市所需要的时间,即第i个怪物最晚可被消灭的时间。在每个时间段开始的时间点可以消灭一个怪物,因此消灭怪物的最大值是在每次优先消灭到达城市时间最早的怪物条件下产生的。
class Solution {
public:
int eliminateMaximum(vector<int>& dist, vector<int>& speed) {
int n = dist.size();
vector<int> t(n);
int res = 0;
for(int i=0;i<n;i++){
t[i] = (dist[i]-1)/speed[i];//时间
}
sort(t.begin(), t.end());
for(int i=0;i<n;i++){
if(t[i]<i) break;
res++;
}
return res;
}
};