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

G家店面

全局:

2018(4-6月) 码农类General 硕士 全职@google - 猎头 - 技术电面  | | Other | 在职跳槽

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

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

x

评分

参与人数 2大米 +8 收起 理由
czhang1974 + 3 给你点个赞!
417601858 + 5 很有用的信息!

查看全部评分


上一篇:amzon 在线测试
下一篇:L车跪经

本帖被以下淘专辑推荐:

  • · msft|主题: 133, 订阅: 10
全局:
第二题:
  1. public class QueryMangerImpl implements QueryManger{

  2.     Map<Integer, Integer> employmentMap;

  3.     public QueryMangerImpl () {}

  4.     @Override
  5.     public void setManger(int manager, int employee) throws CyclicRelationFoundException {
  6.         if (queryManager(employee, manager)) {
  7.             throw new CyclicRelationFoundException(String.format("There is management relation from %s to %s",
  8.                     manager, employee));
  9.         }
  10.         employmentMap.put(employee, manager);
  11.     }

  12.     @Override
  13.     public void setPeer(int managerFrom, int employee) throws EmployeeNotFoundException, CyclicRelationFoundException {
  14.         if (!employmentMap.containsKey(managerFrom)) {
  15.             throw new EmployeeNotFoundException(String.format("Employee %s is not found"));
  16.         }
  17.         int newManager = employmentMap.get(managerFrom);
  18.         if (queryManager(employee, newManager)) {
  19.             throw new CyclicRelationFoundException(String.format("There is management relation from %s to %s", newManager, employee));
  20.         }
  21.         employmentMap.put(employee, newManager);
  22.     }

  23.     @Override
  24.     public boolean queryManager(int manager, int employee) {
  25.         if (manager == employee) {
  26.             return false;
  27.         }
  28.         while (employmentMap.containsKey(employee)) {
  29.             employee = employmentMap.get(employee);
  30.             if (employee == manager) {
  31.                 return true;
  32.             }
  33.         }
  34.         return false;
  35.     }

  36. }

  37. public interface QueryManger {
  38.     public void setManger(int manager, int employee) throws CyclicRelationFoundException;
  39.     public void setPeer(int managerFrom, int target) throws CyclicRelationFoundException, EmployeeNotFoundException;
  40.     public boolean queryManager(int manager, int employee);
  41. }

  42. public class CyclicRelationFoundException extends Exception {
  43.     public CyclicRelationFoundException(String message) {
  44.         super(message);
  45.     }
  46. }
复制代码
回复

使用道具 举报

推荐
wenyitiger 2018-5-6 14:41:01 | 只看该作者
全局:
您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限 或 查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
回复

使用道具 举报

🔗
plich 2018-5-6 07:15:35 | 只看该作者
全局:
第二题链表一类的方法就差不多了吧,再用一个map把每个人都映射到他们的链表元素上

A和B的manager不一样 set_peer是要怎么设置呢?
回复

使用道具 举报

🔗
abcdldzy 2018-5-6 08:00:26 | 只看该作者
全局:
plich 发表于 2018-5-6 07:15
第二题链表一类的方法就差不多了吧,再用一个map把每个人都映射到他们的链表元素上

A和B的manager不一样 ...

看起来像是个 union find 的问题
回复

使用道具 举报

🔗
Fioooooona 2018-5-6 08:07:37 | 只看该作者
全局:
求教楼主 第一题有说是n*n吗? 如果是m*n matrix,应该返回是n*m matrix啊,怎么in place呢?
回复

使用道具 举报

全局:
第二题就是union find
回复

使用道具 举报

🔗
plich 2018-5-6 10:05:05 | 只看该作者
全局:
abcdldzy 发表于 2018-5-6 08:00
看起来像是个 union find 的问题

如果题目是让你设计interface的话,大概是不需要union find的,在set peer和set manager的时候动态更新一下应该是可以的
回复

使用道具 举报

🔗
 楼主| 海拔2纳米 2018-5-6 10:23:55 | 只看该作者
全局:
Fioooooona 发表于 2018-5-6 08:07
求教楼主 第一题有说是n*n吗? 如果是m*n matrix,应该返回是n*m matrix啊,怎么in place呢?

是的,不是n*n没法in place,是个大水题
回复

使用道具 举报

🔗
 楼主| 海拔2纳米 2018-5-6 10:25:43 | 只看该作者
全局:
第二题我当时也是想用union fine,不过没太想明白应该怎么写,最后还是写了个dfs
回复

使用道具 举报

🔗
suifeng2006 2018-5-6 10:45:03 | 只看该作者
全局:
您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限 或 查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
回复

使用道具 举报

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

本版积分规则

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