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
- 跳出循环
- 否则,
- 跳出循环
- 如果 people[i] >= tasks[j],则
- 对于范围从 ind 到 tasks 列表大小的 j:
- 返回 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
广告