Minimum Cost for Tickets
Transitions
Top-down
def cost_tickets(days, prices):
def solve(i, expiry):
if i >= len(days): return 0
if days[i] < expiry: return solve(i + 1, expiry)
buy_one = solve(i + 1, days[i] + 1) + prices[0]
buy_seven = solve(i + 1, days[i] + 7) + prices[1]
buy_thirty = solve(i + 1, days[i] + 30) + prices[2]
return min(buy_one, buy_seven, buy_thirty)
return solve(0, 0)Bottom-up
Last updated