This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
package class15;
//leetcode 714
public class Code06_BestTimeToBuyAndSellStockWithTransactionFee {
public static int maxProfit(int[] arr, int fee) {
if (arr == null || arr.length < 2) {
return 0;
}
int N = arr.length;
// 0..0 0 -[0] - fee
int bestbuy = -arr[0] - fee;
// 0..0 卖 0
int bestsell = 0;
for (int i = 1; i < N; i++) {
// 来到i位置了!
// 如果在i必须买 收入 - 批发价 - fee
int curbuy = bestsell - arr[i] - fee;
// 如果在i必须卖 整体最优(收入 - 良好批发价 - fee)
int cursell = bestbuy + arr[i];
bestbuy = Math.max(bestbuy, curbuy);
bestsell = Math.max(bestsell, cursell);
return bestsell;