一、动态规划
这个解题方法是看的leetcode的一位老大哥的,我把他的代码改了一下,然后我自己还没搞明白
let maxProfit = function(prices) {
if ( prices.length <= 1)
return 0;
//初始条件
let hold = -prices[0];//当前手中的钱 买入股票算是支出所以为负数
let max = 0;//当前最大收益
for (let i = 1; i < prices.length; i++) {
// 当天未持有的股票和当天买入的股票减去前一天持有的股票作比较,留下最大的值
max = Math.max(max, hold + prices[i]);
// 当天买入股票和未买入的股票减去当天持有的股票作比较,留下最大的值
hold = Math.max(hold, max - prices[i]);
}
//最后一天肯定是手里没有股票的时候利润才会最大,
//所以这里返回的是noHold
return max;
};
console.log(maxProfit([7,1,5,3,6,4]))
二、暴力算法
在这里插入代码片