Leetcode122-买卖股票的最佳时机II
Leetcode122-买卖股票的最佳时机II
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。
本题没有对交易次数作出任何限制,因此买卖的次数事实上是无限的。我们可以将股票的价格想象成连绵起伏的山脉,利润可以看成更高的山峰与更低的山峰的高度差。更高的价格对应更高的山峰,我们必须攀登更高的山峰。如果某座山峰的高度比当前的山峰更低,则应该直接跳过。累积的高度差即为我们最终所获得的利润。
1 // Leetcode 122 2 // Array, greedy 3 var maxProfit = function(prices) { 4 if (prices.length <= 1) { 5 return 0; 6 } 7 8 slow = 0; fast = 1; res = 0; 9 for (fast < prices.length) { 10 if (prices[fast] > prices[slow]) { 11 res += prices[fast] - prices[slow]; 12 slow++; 13 fast++; 14 } else { 15 slow = fast; 16 fast = fast + 1; 17 } 18 } 19 return res; 20 };

浙公网安备 33010602011771号