前言
掘金團隊号上線,助你 Offer 臨門! 點選
檢視詳情題目描述

解題思路
- 首先定義一個數組用來存儲當天之後股票的價格-今天的價格的最大值
- 周遊每一個元素的同時,取出剩餘元素
- 使用JS自帶的sort方法,将剩餘元素的最大值取出來,然後存到結果數組中
- 使用sort方法将結果數組中的最大值進行傳回即可
解題代碼
var maxProfit = function (prices) {
if (prices.length === 0) return 0;
const result = [];
for (let i = 0; i < prices.length; i++) {
const remain = prices.slice(i + 1);
const remainMax = remain.sort((num1,num2) => num2 - num1)[0];
if (remainMax === undefined) {
result.push(0);
} else {
result.push(remainMax - prices[i]);
}
};
result.sort((num1,num2) => num2 - num1);
return result[0];
};
總結
- 本題屬于較為簡單動态規劃問題
- 最容易出錯的地方在于逾時了
- 本題給出的不是最優解,隻是作者的個人思路
- 本題可以通過在周遊每個元素的時候,不斷更新最大值和最小值的方法,來求解