前端演算法:設計演算法以找到最大利潤。您可以根據需要完成儘可能多的交易(即,多次買入並賣出一股股票)
阿新 • • 發佈:2018-12-23
假設您有一個數組,其中第i個元素是第i天給定股票的價格。 設計演算法以找到最大利潤。您可以根據需要完成儘可能多的交易(即,多次買入並賣出一股股票)。 注意:您不能同時進行多筆交易(即,您必須在再次購買之前賣出股票)。
例1:
輸入: [7,1,5,3,6,4]
輸出: 7
說明:在第2天買入(價格= 1)並在第3天賣出(價格= 5),利潤= 5-1 = 4。
然後在第4天買入(價格= 3)並在第5天賣出(價格= 6),利潤= 6-3 = 3。
例2:
輸入: [1,2,3,4,5]
輸出: 4
說明:在第1天買入(價格= 1)並在第5天賣出(價格= 5),利潤= 5-1 = 4。
請注意,您不能在第1天購買、在第2天購買並在以後出售,就像您一樣
同時參與多個交易。您必須在再次購買之前出售。
例3:
輸入: [7,6,4,3,1]
輸出: 0
說明:在這種情況下,沒有進行任何交易,即最大利潤= 0。
<script> var maxProfit = function(prices) { var len = prices.length; if(len <= 1) return 0; var ret = 0; for(var i = 1; i < len; i++) { ret += Math.max(0, prices[i] - prices[i-1]); } return ret; }; var data1 = [7,1,5,3,6,4]; var data2 = [1,2,3,4,5,4,1,2,6]; var data3 = [7,6,4,3,1]; console.log(maxProfit(data1)) console.log(maxProfit(data2)) console.log(maxProfit(data3)) </script>