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

Pythonのインターバル時間に基づいて受講できるコースの最大数を見つけるプログラムはありますか?


[start、end]の形式の間隔のリストがあると仮定します。これは、コースの開始時間と終了時間を表します。一度に受講できるコースは1つだけであり、コースの開始は最後のコースの終了よりも遅くする必要があると仮定して、受講できるコースの最大数を見つける必要があります。

したがって、入力がtimes =[[3、6]、[6、9]、[7、8]、[9、11]]の場合、コースを受講できるため、出力は3になります[[3 、6]、[7、8]、[9、11]]

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

  • 終了時間に基づいて時間を並べ替える

  • カウンター:=0、終了:=-1

  • 0から時間のサイズの範囲のiの場合、実行します

    • times [i、0]> endがゼロ以外の場合、

      • カウンター:=カウンター+ 1

      • 終了:=times [i、1]

  • リターンカウンター

理解を深めるために、次の実装を見てみましょう。

class Solution:
   def solve(self, times):
      times.sort(key=lambda x: x[1])

      counter = 0
      end = -1

      for i in range(len(times)):
         if times[i][0] > end:
            counter += 1
            end = times[i][1]
      return counter

ob = Solution()
times = [
   [3, 6],
   [6, 9],
   [7, 8],
   [9, 11]
]
print(ob.solve(times))

入力

[ [3, 6],[6, 9],[7, 8],[9, 11]]

出力

3

  1. Pythonプログラムで素数を見つけるためのさまざまな方法の分析

    このチュートリアルでは、すべてのメソッドに必要な素数と時間を見つけるためのさまざまなメソッドを見ていきます。時間モジュールを使用して実行時間を計算します。 方法-1 素数を見つける一般的な方法です。 数値が1以下の場合は、Falseを返します。 数値が任意の数値で割り切れる場合、関数はFalseを返します。 ループの後、Trueを返します。 例 # importing time module import time # checking for prime def is_prime(n):    if n <= 1:       r

  2. Pythonプログラムは最大3つ。

    3つの数abとcが与えられた場合、私たちのタスクは、与えられた数の中から最大の要素を見つけなければならないということです。 例 Input: a = 2, b = 4, c = 3 Output: 4 アルゴリズム Step 1: input three user input number. Step2: Add three numbers to list. Step 3: Using max() function to find the greatest number max(lst). Step 4: And finally we will print maximum numbe