假设我们有一个任务列表和另一个人员列表。任务[i]确定执行第i个任务所需的力量。人[i]决定第i个人拥有的力量。最后,我们必须找到一个人最多可以完成一项任务可以完成的任务数。
因此,如果输入像任务= [4、3、9、15],人= [10、5、3、2],那么输出将为3,因为第一人称可以执行任务9,第二人称可以执行任务9执行任务4,第三人称可以执行任务3,第四人称不能执行任何任务。
为了解决这个问题,我们将遵循以下步骤-
对列表任务进行排序,对列表人员进行排序
ct:= 0,ind:= 0
因为我的范围是0到人的大小
如果人们[i]> =任务[j],则
除此以外,
ct:= ct + 1
ind:= ind + 1
从循环中出来
从循环中出来
对于范围在ind到任务大小的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