一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 651|回复: 7
收起左侧

口袋宝石一面

[复制链接] |试试Instant~ |关注本帖
zty920317 发表于 2016-11-3 12:07:01 | 显示全部楼层 |阅读模式

2016(10-12月) 码农类 硕士 实习@PoketGem - 网上海投 - 技术电面 |Passfresh grad应届毕业生

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

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
面的是一个白人小哥,两道题,都是地里有的,一道strStr,另外一道就是那个什么RPG游戏,根据给的物品信息, 给的物品以及背包格子的数量求背包里能装最多价值多少的物品。第二题大概物品信息的格式是 ItemInfo: name, value, maximum_num_per_slot。 maximum_num_per_slot表示背包里一个格子最多可以放多少个这个物品。然后输入就是物品信息,背包格子数量以及一个包含物品名字的数组。我用贪心直接一个格子一个格子算的,感觉没什么问题。每个问题小哥问时间复杂度都问的比较细。全程小哥感觉都非常疲惫,说话都有气无力。最后问问题环节直接问了一下他们家新游戏War Dragon的问题,以为可以让小哥兴奋一点儿没想到小哥还是一如既往。。。。。。感觉强行拉着小哥聊了会儿总之发个面经求各种过吧~.鐣欏璁哄潧-涓浜-涓夊垎鍦

评分

1

查看全部评分

offeroffereee 发表于 2016-11-8 07:36:04 | 显示全部楼层
请问楼主第二题贪心怎么统计每个slot的最大值?
回复 支持 反对

使用道具 举报

 楼主| zty920317 发表于 2016-11-8 10:35:08 | 显示全部楼层
offeroffereee 发表于 2016-11-8 07:36
请问楼主第二题贪心怎么统计每个slot的最大值?

对于每个slot把所有剩下的物品都扫一遍,根据每个物品的信息和物品剩下的数量就知道这个格子可以放多少个这个物品(每个格子只能放一种物品),一直循环到没有物品剩下或者格子被用完了为止。
回复 支持 反对

使用道具 举报

bobyuwenchen 发表于 2016-11-8 15:45:08 | 显示全部楼层
zty920317 发表于 2016-11-8 10:35
对于每个slot把所有剩下的物品都扫一遍,根据每个物品的信息和物品剩下的数量就知道这个格子可以放多少个 ...

可以用PriorityQueue吗 然后更新Map 这样复杂度会不会低一点 不是很理解楼主题目的意思~
回复 支持 反对

使用道具 举报

 楼主| zty920317 发表于 2016-11-10 14:17:38 | 显示全部楼层
bobyuwenchen 发表于 2016-11-8 15:45
可以用PriorityQueue吗 然后更新Map 这样复杂度会不会低一点 不是很理解楼主题目的意思~

可能我说的不太清楚吧。举个例子,输入是8个宝石,10个沙子,两个盔甲。一个slot最多可以装5个宝石,或者放7个沙子,或者放一个盔甲。一个宝石值5,一个沙子值2,一个盔甲值15。然后你现在有三个slot,怎么放?第一个slot你就看,不然就放5个宝石,不然就放7个沙子,不然就放1个盔甲,明显放5个宝石最好对吧?然后对于第二个slot怎么办?不然就放3个宝石(只剩三个),不然就放7个沙子,不然放一个盔甲,这个时候发现放7个沙子这个slot价值最高。然后第三个slot,不然放3个宝石,不然放3个傻子,不然放1个盔甲,你发现放三个宝石或者一个盔甲都是最高,你就随便选一个放。所以3个slot一共最多可以放价值5*5 + 7 * 2 + 15 = 54的东西,这就是答案~
回复 支持 反对

使用道具 举报

bobyuwenchen 发表于 2016-11-10 15:08:32 | 显示全部楼层
zty920317 发表于 2016-11-10 14:17
可能我说的不太清楚吧。举个例子,输入是8个宝石,10个沙子,两个盔甲。一个slot最多可以装5个宝石,或者 ...

谢谢lz的解释哈,这样的话你每次选择要O(n)遍历一遍所有的剩余物品,我意思是把东西换成价值放到PriorityQueue里可以是类似于Map.Entry的Object,那我每次只要O(lgn),然后另外一个Map就维护剩下的物品,比如8个宝石 一个宝石价值5 一个slot最多放5个宝石 我就把 (宝石,25)放到PriorityQueue,然后Map变成(宝石,3个)这意思,(宝石,25)poll出来了再把(宝石,15)放进去
回复 支持 反对

使用道具 举报

 楼主| zty920317 发表于 2016-11-10 15:23:12 | 显示全部楼层
bobyuwenchen 发表于 2016-11-10 15:08. 鍥磋鎴戜滑@1point 3 acres
谢谢lz的解释哈,这样的话你每次选择要O(n)遍历一遍所有的剩余物品,我意思是把东西换成价值放到Priority ...

啊啊确实更好,不过我就用最naive的办法小哥也给过了。。。当时写完小哥就说可以你来问我问题吧所以就没有多想了
回复 支持 反对

使用道具 举报

bobyuwenchen 发表于 2016-11-15 08:35:46 | 显示全部楼层
zty920317 发表于 2016-11-10 15:23
啊啊确实更好,不过我就用最naive的办法小哥也给过了。。。当时写完小哥就说可以你来问我问题吧 ...
. from: 1point3acres.com/bbs
哈哈 我也过了 strStr + top k frequent elements  = =水水的
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-11 00:50

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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