动态规划解决徒步旅行中的食物购买问题

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)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值