大概意思就是局部最优导致全局最优。这种做法现实中比较少,因为毕竟还是要从全局来考虑问题。
122. 买卖股票的最佳时机 II
// 52 ms 99.52% 35.9 MB 9.98%
/**
* @param {number[]} prices
* @return {number}
*/
var maxProfit = function(prices) {
let buy = -1
let total = 0
for (let i = 0; i < prices.length; i++) {
if (buy < 0) {
if (prices[i+1] !== undefined && prices[i+1] > prices[i]) {
buy = i
}
} else {
if (prices[i+1] !== undefined) {
if (prices[i+1] < prices[i]) {
total = (prices[i] - prices[buy]) + total
buy = -1
}
} else {
total = prices[i] - prices[buy] + total
}
}
}
return total
};
console.log(maxProfit([7,1,5,3,6,4]))
console.log(maxProfit([1,2,3,4,5,9]))
console.log(maxProfit([7,6,4,3,1]))
console.log(maxProfit([2,1,2,0,1]))
这个题只要看到后一天比前一天价高就在前一天买进即可,我这里是找到接下来几天的峰值后才算收益,实际上,可以不用这样做,只要今天比昨天高就卖出好了。