問題 https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/
練習使用JavaScript解答
/**
* @param {number[]} prices
* @return {number}
*/
var maxProfit = function(prices) {
if(prices.length < 2)
return 0;
var arr = [];
var i,j,tmp,tmpM;
arr[prices.length] = 0;
arr[prices.length - 1] = 0;
for(i = prices.length - 2; i >= 0; --i) {
tmpM = 0;
for(j = i+1; j < prices.length; ++j) {
tmp = (prices[j] - prices[i])>0 ? prices[j] - prices[i] : 0;
if(tmpM < tmp + arr[j+1])
tmpM = tmp + arr[j+1];
}
arr[i] = tmpM > arr[i+1] ? tmpM : arr[i+1];
}
return arr[0];
};
時間複雜度O(n2),空間複雜度O(n)