これは株式マーケティングの問題のようなものです。日々の最大利益を得る方法について質問しているのは混乱していますか?アルゴリズムの時間複雑さはO(n)またはO(n log2 n)であることがわかります。分裂と征服を使用したソートアルゴリズム
入力は、株価の配列であるAです。 1日目は、1日目に買って翌日に売ることで最大の利益を得ることができます。利便性のため、最終日のベストトレードを定義することができます。これは単純に-A [n](最終日に購入すれば売ることはできません。 Aの毎日の最大利益を含む配列を返すアルゴリズムの擬似コードを返します。
更新:最大の利益を得る方法を理解しており、同様のアルゴリズムを分割するマージソートとして使用できますこの最大の利益を見つけることを征服する。私の質問は、最大の利益を見つけるために時間の複雑さO(n)を使用する別の方法(アルゴリズム)は何ですか、あるいは私はこの方法でどのようにアプローチできますか?
基本的にそれぞれのMINとMAXを見つけるためにあなたを語っています日の貿易。 MIN(i)で購入し、もう購入しない最後の日を除いてMAX(i + 1)で販売します。 –
毎日が '価格(S、N + 1)/価格(S、n)は'できるだけ大きい株式 'S'を識別します。それが1未満の場合は、その日を避けてください。それ以外の場合はできるだけ多くのSを購入してください。 – btilly