Pythonの連続する3つの要素から少なくとも1つの要素を取得することにより、最小の合計サブシーケンスを見つけるプログラム
numsと呼ばれる数のリストがあるとすると、3つの連続する数のすべてのグループに対して少なくとも1つの数が選択されるように、与えられたリストから最小の合計サブシーケンスを見つける必要があります。指定されたリストの長さが3未満の場合でも、番号を選択する必要があります。
したがって、入力がnums =[2、3、4、5、6、7]の場合、2と5を選択できるため、出力は7になります。
これを解決するには、次の手順に従います。
- n:=numsのサイズ
- nが0と同じ場合、
- 0を返す
- nが1と同じ場合、
- return nums [0]
- nが2と同じ場合、
- 最小のnums[0]とnums[1]を返します
- table:=サイズnのリストと0で埋める
- table [0]:=nums [0]
- table [1]:=nums [1]
- table [2]:=nums [2]
- 3からnの範囲のiについては、
- table [i]:=nums [i] + table [i-3]、table [i-2]、table[i-1]の最小値
- res:=テーブル[n-1]、テーブル[n-2]、テーブル[n-3]の最小値
- return res
理解を深めるために、次の実装を見てみましょう。
サンプルコード
class Solution: def solve(self, nums): n = len(nums) if n == 0: return 0 if n == 1: return nums[0] if n == 2: return min(nums[0], nums[1]) table = [0] * n table[0] = nums[0] table[1] = nums[1] table[2] = nums[2] for i in range(3, n): table[i] = nums[i] + min(table[i - 3], table[i - 2], table[i - 1]) res = min(table[n - 1], table[n - 2], table[n - 3]) return res ob = Solution() nums = [2, 3, 4, 5, 6, 7] print(ob.solve(nums))
入力
[2, 3, 4, 5, 6, 7]
出力
7
-
Pythonでツリーのすべての要素の合計を見つけるプログラム
いくつかの値を含む二分木があるとすると、ツリー内のすべての値の合計を見つける必要があります。 したがって、入力が次のような場合 その場合、出力は14になります これを解決するには、次の手順に従います- 関数recurse()を定義します。これはノードを取ります val:=ノードの値 ノードの左側がnullでない場合、 val:=val + recurse(ノードの左側) ノードの権利がnullでない場合、 val:=val + recurse(ノードの右側) 戻り値 メインの方法から、次のようにします- ルートがゼロ以外
-
リスト内の要素の合計を見つけるPythonプログラム
この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 入力としてリストが与えられた場合、与えられたリストの合計を計算する必要があります。 ここでは、考慮すべき2つのアプローチがあります。つまり、組み込み関数を使用する方法と、ブルートフォースアプローチを使用する方法です。 アプローチ1-組み込み関数の使用 例 # main arr = [1,2,3,4,5] ans = sum(arr) print ('Sum of the array is ',ans) 出力 15 すべての変数と関数はグローバルスコープで宣言されて