Python程序:在给定条件下查找可完成的任务数量


假设我们有一系列任务和一系列人员。tasks[i] 表示执行第 i 个任务所需的强度,people[i] 表示第 i 个人拥有的强度。最后,我们必须找到如果一个人最多只能执行一项任务,可以完成的任务数量。

因此,如果输入类似于 tasks = [4, 3, 9, 15],people = [10, 5, 3, 2],则输出将为 3,因为第一个人可以执行任务 9,第二个人可以执行任务 4,第三个人可以执行任务 3,而第四个人无法执行任何任务。

为了解决这个问题,我们将遵循以下步骤:

  • 对任务列表 tasks 进行排序,对人员列表 people 进行排序
  • ct := 0,ind := 0
  • 对于范围从 0 到 people 列表大小的 i:
    • 对于范围从 ind 到 tasks 列表大小的 j:
      • 如果 people[i] >= tasks[j],则
        • ct := ct + 1
        • ind := ind + 1
        • 跳出循环
      • 否则,
        • 跳出循环
  • 返回 ct

让我们看看下面的实现以更好地理解:

示例

实时演示

class Solution:
   def solve(self, tasks, people): tasks.sort()
      people.sort()
      ct=0
      ind=0
      for i in range(len(people)):
         for j in range(ind,len(tasks)):
            if people[i]>=tasks[j]:
               ct+=1
               ind+=1
               break
            else:
               break
         return ct
ob = Solution()
tasks = [4, 3, 9, 15]
people = [10, 5, 3, 2] print(ob.solve(tasks, people))

输入

[4, 3, 9, 15], [10, 5, 3, 2]

输出

3

更新于:2020年10月5日

292 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告