回复: 16
跳转到指定楼层
上一主题 下一主题
收起左侧

booking 面经

🔗
匿名用户-OGKTP  2023-5-21 03:30:49 |倒序浏览

2023(4-6月) 码农类General 硕士 全职@booking - 网上海投 - 技术电面  | 😐 Neutral 😐 Average | Other | 在职跳槽

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
本帖最后由 匿名 于 2023-5-20 15:59 编辑

下班店面了国内booking 高级岗,体验一般。


题目很简单,陈述一堆背景后,给出一个数组,里面是map, hash, dict, you name it,
然后,给一个需要入住的客人总数,比如5,
  1. [
  2.     {id: 0, price: 180, guests: 1},
  3.     {id: 1, price: 230, guests: 2},
  4.     {id: 2, price: 220, guests: 2},
  5.     {id: 3, price: 310, guests: 3},
  6. ]
复制代码
求能满足客人入住所需要的最低价格,房间容量,是可能会超过客人总数的,比如有一个房间 {price: 1, guests
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
ts'], -1):
因为, num_guest 不会是N, 房间容量不会是无穷,

所以两层循环时间复杂度是O(n), 各位大神还有啥高招?

也许挂了,他们感觉并不理解我再说什么。。。代码如下。。

  1. def binguan(room_list, num_guest):
  2.     # 1. 找出容量大于等于需求的房间,里面取最小值
  3.     haofangjian_arr  = [r for r in room_list if r['guests'] >= num_guest ]
  4.     haode_room = min(haofangjian_arr, key=lambda r: r['price'])

  5.     # 2. 使用动态规划,在容量小于需求的房间里找出最便宜组合
  6.     dp = [float("inf")] * (num_guest + 1)
  7.     best_dp_room = [[] for _ in range(num_guest + 1)]
  8.     dp[0] = 0

  9.     for r in room_list:
  10.         for i in range(num_guest, r['guests'], -1):
  11.             new_price = dp[i - r['guests']] + r['price']
  12.             if dp[i] > new_price:
  13.                 dp[i] = new_price
  14.                 best_dp_room[i] = best_dp_room[i - r['guests']] + [r]
  15.    
  16.     dp_best = sum([r['price'] for r in best_dp_room[num_guest]])
  17.    
  18.     return best_dp_room[num_guest] if dp_best <= haode_room['price'] else haode_room

复制代码

评分

参与人数 3大米 +17 收起 理由
小亩_2u3ghnx + 1 赞一个
匿名用户-DGHWO + 15
Zenf + 1 赞一个

查看全部评分


上一篇:Valkyrie OA+电面
下一篇:Sig online assessment
推荐
OSF 2025-1-1 17:52:35 | 只看该作者
全局:
看代码看得不是特别明白,说错的话抱歉哈。
感觉楼主这个代码是不是解决不了几个房间容量和大于num_guest 的情况,因为每次是从 num_guest 往下遍历的。
比如 capacity: [2, 2, 3], num_guest: 6
回复

使用道具 举报

地里匿名用户
推荐
匿名用户-OGKTP  2023-5-22 20:43:07
lesterlilijing 发表于 2023-5-22 08:32
看着也是01背包问题。面试官说不能在选的意思应该是,每个房间只能选一次

是的,每个房间只能选一次,主要是比价惊讶的是,我上来给DP,考官貌似觉得我方向不对。。。哈哈
回复

使用道具 举报

全局:
看着也是01背包问题。面试官说不能在选的意思应该是,每个房间只能选一次
回复

使用道具 举报

全局:
没积分看不到尴尬
回复

使用道具 举报

🔗
adoo 2023-11-27 17:11:01 | 只看该作者
全局:
攒分看面经
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-BVAVY  2024-1-8 16:28:24
lz 面了啥系统设计呢
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-NIEVZ  2024-3-18 17:27:27 来自APP
回溯(recursion)+ Memorisation 也是可以接受的方法
回复

使用道具 举报

🔗
idotu1 2024-9-20 19:26:14 | 只看该作者
全局:
大于需要人数的不能叫edge case, 有点confusing, 而且代码直接把他们找出来相当于一次full table scan 如果表特别大 并不是很划算 而且造成代码不够优雅 时间复杂度也不是 N 而是 NM
回复

使用道具 举报

🔗
Moonrise8101 2024-9-27 12:11:05 | 只看该作者
全局:
有OA的题目吗
回复

使用道具 举报

🔗
Yeeeeeee123 2024-9-27 15:50:17 | 只看该作者
全局:

OA很简单,两道题是件很充足,一个半小时的时间大概四十分钟就做出来了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表