1

古典的な株式利益の最大化の質問には、株価の配列が含まれており、得ることができる最大利益を返す必要があります。

特定の株価で利益を最大化するためのロジックを理解しています。簡単な方法で、実行中の最小値と実行中の max_so_far を維持し、現在の elem が min または現在の elem より小さいかどうかを確認します - 実行中の min が max_so_far より大きい場合、max_so_far を更新します。

最後に、最大の利益である max_so_far を返します。

では、2 ショット戦略の問題をどのように解決すればよいでしょうか。基本的に、arr[j0]-arr[i0] と arr[j1]-arr[i1] の合計が最大になり、i0<j0 < i1 <j1 となるように i0、j0、i1、j1 を返す必要があります。

ある程度考えることができましたが、後でそれを一般化する方法を理解できませんでした。したがって、最初に、すべての max_so_far 要素を含む単一のソリューション配列を取得できました。同様に、arr[n-1] から 0 までの同様の配列を作成することもできます。これにより、今日以降に売却する必要がある場合、最大の利益を得ることができます。配列に対応する要素を前方反復で追加し、配列を後方反復で追加し、そこから最大要素を取得すると、それは最大 i0,j0,i1,j1 に対応します

しかし、誰かが最初にkショットアルゴリズムのロジックを説明できますか. 次に、2ショット戦略をkショットに拡張する方法について、kショット戦略を理解したいと思うでしょう。

ありがとう

4

1 に答える 1