元の質問へのリンク
問題解決のアイデア
- どの瞬間の株価もすでに判明しています。
- 単純に、明日の価格が今日よりも高ければ、取引が行われると判断します。つまり、今日買って明日売るのです。
- 配列を繰り返し、もしn+1日目の価格がn日目よりも高ければ、両者の価格差に利益が加算されます。
/**
* @param {number[]} prices
* @return {number}
*/
var maxProfit = function (prices) {
let result = 0;
for (let index = 0; index < prices.length - 1; index++) {
// 現在の価格と翌日の価格の差を計算する。
const dif = prices[index + 1] - prices[index];
// 翌日の株価が高ければ、取引が必要であることを示す。
if (dif > 0) {
// 得られた差額を保存する。
result += dif;
}
}
return result;
};