import java.util.*;
public class Solution {
public int carFleet(int target, int[] position, int[] speed) {
Stack<Car> stack=new Stack<>();
//根据元素的实际值大小降序排列
TreeSet<Car> carTreeSet = new TreeSet<>(new Comparator<Car>() {
@Override
public int compare(Car o1, Car o2) {
//根据位置降序排列
return -(o1.position-o2.position);
}
});
//位置信息,速度信息存入TreeSet中
for(int i=0;i<position.length;i++){
Car car = new Car();
car.position=position[i];
car.speed=speed[i];
carTreeSet.add(car);
}
//遍历TreeSet
Iterator<Car> iterator = carTreeSet.iterator();
while (iterator.hasNext()){
Car car= iterator.next();
double time = (target-car.position)*1.0/car.speed;
//栈为空或追不上前车入栈
if(stack.empty()||((target-stack.peek().position)*1.0/stack.peek().speed)<time){
stack.push(car);
}
}
return stack.size();
}
}
class Car {
int position;
int speed;
}