Pythonの間隔のリストから合計一意の期間を見つけるプログラム
各リストが間隔[開始、終了](両端を含む)を表す間隔のリストがあるとします。それがカバーするユニークな期間の合計を見つける必要があります。
したがって、入力がintervals =[[2、11]、[13、31]、[41、61]]のような場合、一意のカバー距離の合計は(11-2 + 1)であるため、出力は50になります。 =10の場合、(31-13 + 1)=19および(61-41 + 1)=21なので、合計は50になります。
これを解決するには、次の手順に従います-
- 間隔リストが空の場合、
- 0を返す
- リスト間隔を並べ替える
- [開始、終了]:=間隔[0]
- ans:=0
- 間隔を置いて開始および終了(s、e)ごとに、
- s>が終了した場合、
- ans:=ans + end --start + 1
- start:=s、end:=e
- それ以外の場合、
- end:=endの最大値、e
- s>が終了した場合、
- ans:=ans + end --start + 1
- 回答を返す
理解を深めるために、次の実装を見てみましょう-
例
class Solution: def solve(self, intervals): if not intervals: return 0 intervals.sort() start, end = intervals[0] ans = 0 for s, e in intervals: if s > end: ans += end - start + 1 start = s end = e else: end = max(end, e) ans += end - start + 1 return ans ob = Solution() intervals = [[2, 11],[13, 31],[41, 61]] print(ob.solve(intervals))
入力
[[2, 11],[13, 31],[41, 61]]
出力
50
-
リストの累積合計を見つけるPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −リストが与えられたので、累積合計でリストを作成する必要があります。 次に、以下の実装のソリューションを見てみましょう- 例 # cumulative sum def Cumulative(l): new = [] cumsum = 0 for element in l: cumsum += element new.append(cumsum) &
-
リストから一意の値を出力するPythonプログラム
リストが与えられた場合、私たちのタスクはすべての一意の番号を印刷することです。 例 Input:A = [1, 2, 3, 4, 2, 1, 9] Unique list is [1, 2, 3, 4, 9] アルゴリズム Step 1: Create user input list. Step 2: Create an empty list. Step 3: Traverse all elements in the list. Step 4: Check the unique element is present or not. Step 5: Append unique element o