參考資訊:
https://www.cnblogs.com/grandyang/p/7776979.html
題目:
解答:
int max(int a, int b) { return a > b ? a : b; } int maxProfit(int *prices, int pricesSize, int fee) { int cc = 0; int sold[50000] = { 0 }; int hold[50000] = { 0 }; hold[0] = -prices[0]; for (cc = 1; cc < pricesSize; cc++) { sold[cc] = max(sold[cc - 1], hold[cc - 1] + prices[cc] - fee); hold[cc] = max(hold[cc - 1], sold[cc - 1] - prices[cc]); } return sold[pricesSize - 1]; }