mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-09 19:44:45 +08:00
Merge pull request #158 from Winniekun/master
添加0714.买卖股票的最佳时机含手续费 Java版本
This commit is contained in:
@ -95,7 +95,48 @@ public:
|
||||
|
||||
|
||||
Java:
|
||||
```java
|
||||
/**
|
||||
* 卖出时支付手续费
|
||||
* @param prices
|
||||
* @param fee
|
||||
* @return
|
||||
*/
|
||||
public int maxProfit(int[] prices, int fee) {
|
||||
int len = prices.length;
|
||||
// 0 : 持股(买入)
|
||||
// 1 : 不持股(售出)
|
||||
// dp 定义第i天持股/不持股 所得最多现金
|
||||
int[][] dp = new int[len][2];
|
||||
dp[0][0] = -prices[0];
|
||||
for (int i = 1; i < len; i++) {
|
||||
dp[i][0] = Math.max(dp[i - 1][0], dp[i - 1][1] - prices[i]);
|
||||
dp[i][1] = Math.max(dp[i - 1][0] + prices[i] - fee, dp[i - 1][1]);
|
||||
}
|
||||
return Math.max(dp[len - 1][0], dp[len - 1][1]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 买入时支付手续费
|
||||
* @param prices
|
||||
* @param fee
|
||||
* @return
|
||||
*/
|
||||
public int maxProfit(int[] prices, int fee) {
|
||||
int len = prices.length;
|
||||
// 0 : 持股(买入)
|
||||
// 1 : 不持股(售出)
|
||||
// dp 定义第i天持股/不持股 所得最多现金
|
||||
int[][] dp = new int[len][2];
|
||||
// 考虑买入的时候就支付手续费
|
||||
dp[0][0] = -prices[0] - fee;
|
||||
for (int i = 1; i < len; i++) {
|
||||
dp[i][0] = Math.max(dp[i - 1][0], dp[i - 1][1] - prices[i] - fee);
|
||||
dp[i][1] = Math.max(dp[i - 1][0] + prices[i], dp[i - 1][1]);
|
||||
}
|
||||
return Math.max(dp[len - 1][0], dp[len - 1][1]);
|
||||
}
|
||||
```
|
||||
|
||||
Python:
|
||||
|
||||
|
Reference in New Issue
Block a user