题目描述
题意解析
给定敌人的一个距离数组和一个速度数组,每秒能干掉一个敌人,当有一个敌人到达城市时游戏结束。
思路分析
贪心的想,只要是有敌人存在,我们每秒钟就要消灭其中距离城市最近的那个。因此可以通过距离和速度数组计算出敌人到达城堡的时间,然后进行排序,判断若敌人到达城堡时间小于当前时间,则无法消灭所有敌人,输出消灭敌人总数。
代码
class Solution {
public int eliminateMaximum(int[] dist, int[] speed) {
int n = dist.length, ans = 0;
double time[] = new double[n];
for(int i = 0; i < n; i ++) time[i] = Double.valueOf(dist[i]) / Double.valueOf(speed[i]);
Arrays.sort(time);
for(int i = 0; i < n; i ++) {
if(i >= time[i]) {
if(i == 0) ans = 1;
break;
}
ans = i + 1;
}
return ans;
}
}