去哪儿网笔试题之预定酒店

本文介绍了一种使用动态规划解决房间预订问题的方法。通过自底向上的搜索策略,实现了一个高效的算法,能够找到预订一定数量房间所需的最少资金。算法首先初始化一个存储中间结果的数组,并通过迭代的方式填充该数组。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 题目
这里写图片描述

2. 算法分析
这题主要是采用动态规划的思想,自底向上的搜索方法。

3. 算法

/*以下为赛码网的编译环境
var line;
while(line = read_line()){
    line = line.split(' ');
    var money = line.pop();
    var price=line;
    print(reserveRoom(money,price));
}*/
function reserveRoom(money,price)
{
    var memo = new Array(money + 1)fill(money);
    memo[0]=0;//初始条件很关键
     for (var i = 1; i <=money; i++) {
        for(var j = 0;j<price.length;j++){
            if (i >= price[j])
            {
               memo[i]=Math.min(memo[i],memo[i-price[j]]+1);
            }
        }
     }
    return memo[money]===money?-1:memo[money];
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值