
function maxProfit(prices: number[], fee: number): number {
let hold = -prices[0]
let free = 0
for(let i = 1; i < prices.length; i++) {
const prevHold = hold
const prevFree = free
hold = Math.max(prevHold, prevFree - prices[i])
free = Math.max(prevFree, prevHold + prices[i] - fee)
}
return free
};