class Solution:
def eliminateMaximum(self, dist: List[int], speed: List[int]) -> int:
minReach = [math.ceil(d / s) for d, s in zip(dist, speed)]
minReach.sort()
res = 0
for minute in range(len(minReach)):
if minute >= minReach[minute]:
return res
res += 1
return resclass Solution:
def eliminateMaximum(self, dist: List[int], speed: List[int]) -> int:
for i in range(len(dist)):
dist[i] = math.ceil(dist[i] / speed[i])
dist.sort()
for minute in range(len(dist)):
if minute >= dist[minute]:
return minute
return len(dist)class Solution:
def eliminateMaximum(self, dist: List[int], speed: List[int]) -> int:
minHeap = []
for i in range(len(dist)):
heapq.heappush(minHeap, dist[i] / speed[i])
res = 0
while minHeap:
if res >= heapq.heappop(minHeap):
return res
res += 1
return res