Python
 Computer >> コンピューター >  >> プログラミング >> Python

タスクの数を見つけるプログラムは、Pythonで指定された条件で終了できます


タスクのリストと別の人のリストがあるとします。タスク[i]は、i番目のタスクを実行するために必要な強度の量を決定します。そして人々[i]はi番目の人が持っている強さの量を決定します。最後に、1人が最大で1つのタスクを実行できる場合に完了できるタスクの数を見つける必要があります。

したがって、入力がtasks =[4、3、9、15]、people =[10、5、3、2]の場合、最初の人がタスク9を実行できるため、出力は3になります。タスク4を実行し、3人目はタスク3を実行でき、4人目はタスクを実行できません。

これを解決するには、次の手順に従います-

  • リストタスクを並べ替え、リストの人を並べ替える
  • ct:=0、ind:=0
  • 0から人のサイズまでの範囲のiについては、
    • タスクのサイズに対応する範囲のjについては、
      • people [i]> =tasks [j]の場合、
        • ct:=ct + 1
        • ind:=ind + 1
        • ループから抜け出す
      • それ以外の場合、
        • ループから抜け出す
  • return 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

  1. Pythonで指定された数のビット1の数を見つけるプログラム

    数nがあるとすると、その数のバイナリ表現に存在するビット1の数を見つける必要があります。 したがって、入力が12のような場合、出力は2になります これを解決するには、次の手順に従います- count:=0 nがゼロ以外の場合は、 count:=count +(n AND 1) n:=(n / 2)のフロア 返品数 理解を深めるために、次の実装を見てみましょう- 例 class Solution:    def solve(self, n):       count = 0       whi

  2. Pythonで収集できるコインの最大数を見つけるためのプログラム

    各セルにいくつかのコインが格納されている2Dマトリックスがあるとします。 [0,0]から始めて、右または下にしか移動できない場合、右下隅で収集できるコインの最大数を見つける必要があります。 したがって、入力が次のような場合 1 4 2 2 0 0 0 5 [1、4、2、2、5] のパスをたどると、出力は14になります。 これを解決するために、次の手順に従います- 範囲1からAの行数までのrについては、次のようにします A [r、0]:=A [r、0] + A [r-1、0] 範囲1からAの列数までのcにつ