我的解法:
先排序,然后让能工作最多的工人去做最长时间的工作,最短工作的工人去做最短时间的工作
class Solution:def minimumTime(self, jobs: List[int], workers: List[int]) -> int:jobs.sort()workers.sort()max_time=-1for pointer in range(0,len(jobs)):worktime=math.ceil(jobs[pointer]/workers[pointer])max_time=max(worktime,max_time)return max_time
标准解法:
class Solution:def minimumTime(self, *args) -> int:return max((w + j - 1) // j for w, j in zip(*map(sorted, args)))# class S:# def __getitem__(self, t: int) -> int:# A = [t * x for x in workers]# return all(a <= b for a, b in zip(jobs, A))# return bisect_left(S(), True, 1, 123456)