leetcode 714. 买卖股票的最佳时机含手续费

贪心:
class Solution {
public int maxProfit(int[] prices, int fee) {
int n=prices.length;
int low=prices[0];
int ans=0;
for(int i=1;i<n;i++){
if(prices[i]<=low) low=prices[i];
else if(prices[i]<=low+fee) continue;
else{
ans+=prices[i]-low-fee;
low=prices[i]-fee;
}
}
return ans;
}
}
动态规划:
class Solution {
public int maxProfit(int[] prices, int fee) {
int len=prices.length;
int[] dp=new int[2];
dp[1]=-prices[0]-fee;
for(int i=1;i<len;i++){
int d0=Math.max(dp[0],dp[1]+prices[i]);
int d1=Math.max(dp[1],dp[0]-prices[i]-fee);
dp[0]=d0;
dp[1]=d1;
}
return dp[0];
}
}

浙公网安备 33010602011771号