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

Pythonで間隔をマージし、昇順で並べ替えるプログラム


リスト間隔があるとすると、ソートされた順序でそれらの和集合を見つける必要があります。

したがって、入力がinv =[[2、5]、[4、10]、[20、25]]の場合、出力は[[2、10]、[20、25]]>

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

  • リスト間隔を並べ替える
  • ans:=新しいリスト
  • 間隔を置いて開始および終了(s、e)ごとに、
    • ansおよびs<=ansの最後の間隔の終了時刻の場合、
      • ansの最後の間隔の終了時間:=eの最大値とansの最後の間隔の終了時間
    • それ以外の場合、
      • 間隔[s、e]をansに挿入します
  • 回答を返す

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

class Solution:
   def solve(self, intervals):
      intervals.sort()
      ans = []
      for s, e in intervals:
         if ans and s <= ans[-1][1]:
            ans[-1][1] = max(ans[-1][1], e)
         else:
            ans.append([s, e])
      return ans
ob = Solution()
inv = [[2, 5],[4, 10],[20, 25]]
print(ob.solve(inv))

入力

[[2, 5],[4, 10],[20, 25]]

出力

[[2, 10], [20, 25]]

  1. 反復マージソート用のPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −配列が与えられたので、反復によるマージソートの概念を使用して配列をソートする必要があります。 ここでは、最大の要素を最後に配置します。これは、配列がソートされるまで繰り返されます。 次に、以下の実装のソリューションを見てみましょう- 例 # iterative way def mergeSort(a):    current_size = 1    # traversing subarrays    while current_size <

  2. Pythonプログラムでの選択ソート

    この記事では、Python3.xでの選択ソートとその実装について学習します。またはそれ以前。 選択ソート アルゴリズムでは、配列は、ソートされていない部分から最小要素を再帰的に見つけて、それを先頭に挿入することによってソートされます。特定の配列での選択ソートの実行中に、2つのサブ配列が形成されます。 すでに並べ替えられているサブ配列。 ソートされていないサブアレイ。 選択ソートを繰り返すたびに、ソートされていないサブアレイの最小要素がポップされ、ソートされたサブアレイに挿入されます。 アルゴリズムの視覚的表現を見てみましょう- それでは、アルゴリズムの実装を見てみましょう-