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 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.