def solution(n, k, data):
# Edit your code here
min_money = 0
ready = []
min_value = 0
for i in data:
# 当前站点加入ready
ready.append(i)
# 如果ready大于k,就将最先进入的站点价格删除
if len(ready) > k:
ready.pop(0)
# 找到最小值(这一步的时间复杂度应该为O(n))。如果在这里建堆就没必要了,时间复杂度可能提升至O(n*log()n)
min_value = min(ready)
min_money += min_value
return min_money
if __name__ == "__main__":
# Add your test cases here
print(solution(5, 2, [1, 2, 3, 3, 2]) == 9)
动态规划解决徒步旅行中的食物购买问题
最新推荐文章于 2025-04-10 16:33:23 发布