在 Python 中查找完成具有 k 时间间隔的任务所需的最短时间的程序

假设我们有一个称为任务的整数列表,其中每个项目代表不同的任务类型,我们还有一个非负整数,比如 k。每个任务需要一个单位的时间来完成,任务必须以正确的顺序完成,但我们必须在完成两个相同类型的任务之间有 k 个单位的时间。在任何时候,我们都可以执行任务或等待。我们必须找出完成所有任务所需的时间。

所以,如果输入像 tasks = [0, 1, 1, 2] k = 2,那么输出将是 6,因为前两个任务是不同的类型,所以它们可以毫无间隙地执行,现在是2,下一个任务是同类型任务,我们要等2个时间槽,然后再做任务,最后有其他类型的任务,类型2。所以做这个任务。所以它就像 [0, 1, wait, wait, 1, 2]。由此我们可以确定,我们需要6个时隙。

示例

让我们看看以下实现以获得更好的理解 -

def solve(tasks, k):

   tick = 0

   slot = {}

   for t in tasks:

      tf = slot.get(t)

      if tf is not None and tf - tick > 0:

         tick += tf - tick

      tick += 1

      slot[t] = tick + k

   return tick

tasks = [0, 1, 1, 2]

k = 2

print(solve(tasks, k))

输入

[0, 1, 1, 2]
输出结果
6

以上是 在 Python 中查找完成具有 k 时间间隔的任务所需的最短时间的程序 的全部内容, 来源链接: utcz.com/z/335412.html

回到顶部