ホームページ  >  記事  >  バックエンド開発  >  隣接する行と列で収集できないコインの価値を最大化する

隣接する行と列で収集できないコインの価値を最大化する

PHPz
PHPz転載
2023-09-12 22:13:021462ブラウズ

隣接する行と列で収集できないコインの価値を最大化する

ダイナミック プログラミングは、特定の問題を多数の単純なサブ問題に分割することで解決する最適化アルゴリズム手法です。このプロセスを通じて、完全な検索からの品質、条件、または事実を組み合わせて、正確かつ正確な貪欲アルゴリズムを取得できます。しかし、このアプローチ自体は矛盾しています。なぜなら、このアプローチには大きな利点がある一方で、最大の欠点と制限でもあるからです。問題をサブ問題に分割することはできますが、サブ問題に分割することはできません。彼らは自ら決心すべきだ。部分問題の概念は本質的に高度に最適化されているため、より重要な問題を解決するために使用できます。

コインとは何ですか?またその引き換え方法は何ですか?

Coins は、合計金額を表す整数の合計を表す配列のコンポーネントです。その過程で、合計のバランスをとるためにいくつかのコインを返却する必要があります。構築されていない場合は、-1 を返します。

コインを両替するには 2 つの解決策があります -

  • 再帰 - シンプルで遅い方法。

  • ダイナミック プログラミング - タイムリーで効率的な方法

コンピューターサイエンスにおけるコインの応用 -

  • は変更を配布するために使用されます。

コイン運用アルゴリズム

これは、隣接する行のコインの価値を徐々に増やすプロセスです。

  • ステップ 1 - 開始

  • ステップ 2 - 長さ n 1

  • の新しい配列を構築します
  • ステップ 3 - 一方向処理のために動的 prog[0] を 1 に設定します

  • ステップ 4 - 値を反復処理する

  • ステップ 5 - Dynamicprog[index-coins[i]] の値を Dynamicprog[index]

  • に追加します。
  • ステップ 6 - 1 から n

  • までの範囲を設定します
  • ステップ 7 -値を返す

  • ステップ 8 - 終了

コインの構文

リーリー

C 環境で使用できるコイン変更構文は次のとおりです。この構文を適用することで、このコインを完全に理解するためのコードを構築します。

従うべき方法:

  • 方法 1 - コインの最大数を見つけるための再帰的 C プログラム

  • 方法2-隣接する行および列のコインが収集できない場合にコインの価値を最大化する

コインの最大数を見つけるための再帰的 C プログラム

このコードでは、動的プログラミングを適用します。ロジックは、arr[i][j 1] および arr[i][j – 1] です。

例 1

の中国語訳は次のとおりです:

例 1

リーリー ###出力### リーリー

隣接する行および列のコインが収集できない場合にコインの価値を最大化する

この C コードでは、行き止まりに陥る前に最も多くのコインを見つけて収集する方法を適用します。

    1 ステップ、つまりセル (i, j 1) に進みます。方向は変わりません。
  • 1 つ下に移動して左に向かう、つまりセル (i 1, j) に移動すると、方向が左に変わります。
  • 例 2
は次のように翻訳されます:

例 2

リーリー ###出力### リーリー ###結論は###

今日のこの投稿では、可能な C でコードとアルゴリズムを構築することで、隣接する行からは収集できない列からのコインの価値を最大化する方法を学びました。

以上が隣接する行と列で収集できないコインの価値を最大化するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。