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

Pythonで作成できる連続値の最大数を見つけるプログラム


n個の要素を持つcoinsという配列があり、それが所有するコインを表しているとします。 i番目のコインの値はcoins[i]として表されます。合計がxになるようにn枚のコインのいくつかを選択できれば、値xを作成できます。 0から始まり0を含むコインで取得できる連続値の最大数を見つける必要があります。

したがって、入力がcoins =[1,1,3,4]の場合、出力は10になります。

  • 0 =[]

  • 1 =[1]

  • 2 =[1,1]

  • 3 =[3]

  • 4 =[4]

  • 5 =[4,1]

  • 6 =[4,1,1]

  • 7 =[4,3]

  • 8 =[4,3,1]

  • 9 =[4,3,1,1]

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

  • リストコインを並べ替える

  • ans:=1

  • コインのコインごとに、実行します

    • コイン>ansの場合、

      • ループから出てきます

    • ans:=ans+コイン

  • ansを返す

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

def solve(coins):
   coins.sort()
   ans = 1
   for coin in coins:
      if coin > ans:
         break
      ans+=coin
   return ans

coins = [1,1,3,4]
print(solve(coins))

入力

[1,1,3,4]

出力

10

  1. 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につ

  2. 作成できる文字列の数を見つけるプログラム。ここで、「a」は「a」または「b」であり、「b」はPythonでは「b」のままです。

    「a」と「b」だけの文字列sがあるとします。 「a」は「a」のままにすることも「b」に変えることもできますが、「b」を変更することはできません。作成できる一意の文字列の数を見つける必要があります。 したがって、入力がs =baabのような場合、これらの文字列を作成できるため、出力は4になります-[baab、 babb、 bbab、 bbbb] これを解決するには、次の手順に従います- counts:=sの「a」の頻度 2^カウントを返す 理解を深めるために、次の実装を見てみましょう- 例 class Solution:    def solve(self, s