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 };
posted @ 2021-04-09 14:34  曹冲字仓舒  阅读(49)  评论(0)    收藏  举报