1 Star 0 Fork 0

yuhang2__2/LeetCode-Solutions

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
minimum-cost-for-tickets.py 753 Bytes
一键复制 编辑 原始数据 按行查看 历史
# Time: O(n)
# space: O(1)
class Solution(object):
def mincostTickets(self, days, costs):
"""
:type days: List[int]
:type costs: List[int]
:rtype: int
"""
durations = [1, 7, 30]
W = durations[-1]
dp = [float("inf") for i in xrange(W)]
dp[0] = 0
last_buy_days = [0, 0, 0]
for i in xrange(1,len(days)+1):
dp[i%W] = float("inf")
for j in xrange(len(durations)):
while i-1 < len(days) and \
days[i-1] > days[last_buy_days[j]]+durations[j]-1:
last_buy_days[j] += 1 # Time: O(n)
dp[i%W] = min(dp[i%W], dp[last_buy_days[j]%W]+costs[j])
return dp[len(days)%W]
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/yuhang2__2/LeetCode-Solutions.git
git@gitee.com:yuhang2__2/LeetCode-Solutions.git
yuhang2__2
LeetCode-Solutions
LeetCode-Solutions
master

搜索帮助