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

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については、次のようにします

    • A [0、c]:=A [0、c] + A [0、c-1]

    • 1からAのサイズまでの範囲のrについては、次のようにします

    • 範囲1からA[0]のサイズのcの場合、実行

    • A [r、c] =A [r、c] +最大値(A [r-1、c]およびA [r、c-1]

  • Aの右下隅の戻り値

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

class Solution:
   def solve(self, A):
      for r in range(1, len(A)):
         A[r][0] += A[r-1][0]
      for c in range(1, len(A[0])):
         A[0][c] += A[0][c-1]
      for r in range(1, len(A)):
         for c in range(1, len(A[0])):
            A[r][c] += max(A[r-1][c], A[r][c-1])
      return A[-1][-1]
ob = Solution()
matrix = [ [1, 4, 2, 2], [6, 0, 0, 5] ]
print(ob.solve(matrix))

入力

matrix = [
   [1, 4, 2, 2],
   [6, 0, 0, 5]
]

出力

14

  1. Pythonで範囲内のノード数を見つけるプログラム

    BSTがあり、左と右の境界lとrもあるとすると、lとrの間に値が存在するルート内のすべてのノードの数を見つける必要があります。 したがって、入力が次のような場合 l =7、r =13の場合、8、10、12の3つのノードがあるため、出力は3になります。 これを解決するために、次の手順に従います- スタック:=スタックと最初にルートを挿入し、カウント:=0 スタックが空でないときに、実行します node:=スタックの最上位要素、およびポップ要素 ノードがnullでない場合、 l<=ノードのデータ<=rの場合、 count:=count + 1

  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