📣 独立日限时特惠: VIP通行证立减$68
楼主: pinkdatura
跳转到指定楼层
上一主题 下一主题
收起左侧

amazon oa求教

全局:
movie rate 的那道题我用的是BFS + minheap 做的 因为不知道具体的题是什么样子我自己写了一个Movie的类下面是代码 求讨论

  1. public List<Integer> find(int id, int k, Moive moive) {
  2.         Queue<Moive> q = new LinkedList<Moive>();
  3.         PriorityQueue<Integer> minHeap = new PriorityQueue<>();
  4.         List<Integer> res = new ArrayList<Integer>();
  5.         Set<Integer> visited = new HashSet<Integer>();

  6.         q.offer(moive);

  7.         while (!q.isEmpty()) {
  8.             Moive cur = q.poll();

  9.             for (Moive neighbor : cur.neighbors) {
  10.                 if (visited.add(neighbor.id)) {
  11.                     minHeap.offer(neighbor.id);

  12.                     if (minHeap.size() > k) {
  13.                         minHeap.poll();
  14.                     }

  15.                     q.offer(neighbor);
  16.                 }
  17.             }
  18.         }

  19.         while (!minHeap.isEmpty()) {
  20.             res.add(minHeap.poll());
  21.         }

  22.         return res;
  23.     }

  24.     class Moive {
  25.         int id;
  26.         int rate;
  27.         List<Moive> neighbors;

  28.         public Moive(int id, int rate, List<Moive> neighbors) {
  29.             this.id = id;
  30.             this.rate = rate;
  31.             this.neighbors = neighbors;
  32.         }
  33.     }

复制代码
回复

使用道具 举报

🔗
 楼主| pinkdatura 2016-8-15 02:48:24 | 只看该作者
全局:
会踢球的哈士奇 发表于 2016-8-14 14:14
movie rate 的那道题我用的是BFS + minheap 做的 因为不知道具体的题是什么样子我自己写了一个Movie的类下 ...

赞~感觉时间复杂度不会有太大的改变,无论bfs, dfs,都需要遍历所有的network以内的movie才能求出top k rating, 如果n是network里所有的电影数,就像largest k element in streaming里那种,minheap的话是o((n-k)logk + k)呢,而我用的priority queue的复杂度是o(klogn + n) 在n比较大的时候不太好。
最近刚开始研究时间复杂度,答的不对的话,请指正,
回复

使用道具 举报

🔗
stephaniede 2016-8-15 04:17:24 | 只看该作者
全局:
我来鼓励LZ,uber面试官说的都不算什么。 说白了就是对面试者下手狠而已,LZ和我一样运气不好。
我snapchat一面很顺利白人妹子面的,第二面国人小哥一看我github刷了leetcode就故意出非leetcode的题目。。 你说这不是下手狠这是啥。。 不想猜测他们的动机为何,只能理解和该公司气场不合了
回复

使用道具 举报

🔗
 楼主| pinkdatura 2016-8-15 08:24:21 | 只看该作者
全局:
stephaniede 发表于 2016-8-15 04:17
我来鼓励LZ,uber面试官说的都不算什么。 说白了就是对面试者下手狠而已,LZ和我一样运气不好。
我snapcha ...

真的太感激staphanie啦,说到心坎里了,我们都加油,一定会有最棒的结果和未来等着我们的!
回复

使用道具 举报

🔗
stephaniede 2016-8-15 09:52:02 | 只看该作者
全局:
pinkdatura 发表于 2016-8-14 17:24
真的太感激staphanie啦,说到心坎里了,我们都加油,一定会有最棒的结果和未来等着我们的!

嗯好的~~ 没问题互相鼓励哈哈
回复

使用道具 举报

全局:
pinkdatura 发表于 2016-8-15 02:48
赞~感觉时间复杂度不会有太大的改变,无论bfs, dfs,都需要遍历所有的network以内的movie才能求出top k  ...

同意 BFS 和DFS 都一样的  因为一定把 所有的相关的遍历完
回复

使用道具 举报

🔗
谎言之躯 2016-8-17 02:26:27 | 只看该作者
全局:
楼主,movie那题给的输入接口是什么?
回复

使用道具 举报

🔗
 楼主| pinkdatura 2016-8-17 02:52:26 | 只看该作者
全局:
就是movie id,movie这个class可以call getSimilarMovies()
回复

使用道具 举报

🔗
 楼主| pinkdatura 2016-8-17 02:55:17 | 只看该作者
全局:
题目让设计成api的样式,可以反复call这个function,大家有什么想法吗?我的想法就是每次call一次,就更新一次这个movie的similar movies,把不是directly相联系的也加到network里。
回复

使用道具 举报

🔗
谎言之躯 2016-8-17 05:08:33 | 只看该作者
全局:
pinkdatura 发表于 2016-8-17 02:52
就是movie id,movie这个class可以call getSimilarMovies()

2楼写的那个API怎么样?
回复

使用道具 举报

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

本版积分规则

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