LeetCode 714 Best Time to Buy and Sell Stock with Transaction Fee
2017-12-04 22:36
453 查看
题目
Your are given an array of integers prices, for which the i-th element is the price of a given stock on day i; and a non-negative integer fee representing a transaction fee.You may complete as many transactions as you like, but you need to pay the transaction fee for each transaction. You may not buy more than 1 share of a stock at a time (ie. you must sell the stock share before you buy again.)
Return the maximum profit you can make.
Example 1:
Input: prices = [1, 3, 2, 8, 4, 9], fee = 2 Output: 8 Explanation: The maximum profit can be achieved by: - Buying at prices[0] = 1 - Selling at prices[3] = 8 - Buying at prices[4] = 4 - Selling at prices[5] = 9 The total profit is ((8 - 1) - 2) + ((9 - 4) - 2) = 8.
Note:
0 < prices.length <= 50000.
0 < prices[i] < 50000.
0 <= fee < 50000.
思路
第i天有两种情况:持有股票及没有股票。对于持有股票,有两种操作:卖,或者不卖;对于没有股票,也有两种操作:买,或者不买。用sell[i]表示第i天没有股票(或者执行“卖”操作)所能获得的最大利润,buy[i]表示第i天持有股票(或者执行“买”操作)所能获得的最大利润,则有:sell[i] = max(sell[i-1], buy[i-1]+prices[i]-fee) buy[i] = max(buy[i-1], sell[i-1]-prices[i])
代码
class Solution { public: int maxProfit(vector<int>& prices, int fee) { int sell = 0; int buy = -prices[0]; for(int i = 1; i < prices.size(); i++){ sell=max(sell, buy+prices[i]-fee); buy=max(buy, sell-prices[i]); } return max(sell, buy); } };
后
太久没打算法题啥都不会,,,想了半天最后还是看了网上解法才略懂了,sad相关文章推荐
- leetcode 714 Best Time to Buy and Sell Stock with Transaction Fee
- Best Time to Buy and Sell Stock with Transaction Fee[LeetCode 714]
- LeetCode-714:Best Time to Buy and Sell Stock with Transaction Fee (带有抛售费用的股票最大利润) -- medium
- 714. Best Time to Buy and Sell Stock with Transaction Fee
- leetcode011-Best Time to Buy and Sell Stock with Transaction Fee
- 【12月19日】LeetCode刷题日志(三):Best Time to Buy and Sell Stock with Transaction Fee
- 714. Best Time to Buy and Sell Stock with Transaction Fee
- [LeetCode] Best Time to Buy and Sell Stock with Transaction Fee 买股票的最佳时间含交易费
- LeetCode Best Time to Buy and Sell Stock with Transaction Fee
- 714. Best Time to Buy and Sell Stock with Transaction Fee。
- Leetcode算法学习日志-714 Best Time to Buy and Sell Stock with Transaction Fee
- [LeetCode] DP之 Best time to buy and sell stock with transaction fee
- 714. Best Time to Buy and Sell Stock with Transaction Fee
- 714. Best Time to Buy and Sell Stock with Transaction Fee
- 714. Best Time to Buy and Sell Stock with Transaction Fee
- 714. Best Time to Buy and Sell Stock with Transaction Fee
- 714. Best Time to Buy and Sell Stock with Transaction Fee
- 714. Best Time to Buy and Sell Stock with Transaction Fee(M)
- 714. Best Time to Buy and Sell Stock with Transaction Fee
- LeetCode:Best Time to Buy and Sell Stock with Transaction Fee