public class Solution { public int MaxProfit(int[] prices, int fee) { var profit = 0; var buyPrice = prices[0]; for (var i = 1; i < prices.Length; ++i) { profit = Math.Max(profit, prices[i] - buyPrice - fee); buyPrice = Math.Min(buyPrice, prices[i] - profit); } return profit; } }