📣 Back to School开学季 - VIP通行证5折优惠!蓝莓、Offer多多同步优惠
楼主: peterxianggao
跳转到指定楼层
上一主题 下一主题
收起左侧

谷歌onsite面经

无效楼层,该帖已经被删除
🔗
 楼主| peterxianggao 2018-3-6 12:43:43 | 只看该作者
全局:
yzeng61987 发表于 2018-3-6 10:20
楼主第四题bool matrix 存在 byte array里是从第一行开始数八个bool存成一个byte,一次往后数,最后一个如 ...

嗯 对往后面填0
回复

使用道具 举报

🔗
 楼主| peterxianggao 2018-3-6 12:44:16 | 只看该作者
全局:
lee.leon1110 发表于 2018-3-6 11:12
第5题的答案应该是[A, B, C, D,E ] 吧?,因为都能到Safe啊

要是能“一定”到safe state
回复

使用道具 举报

🔗
wtcupup 2018-3-6 12:46:12 | 只看该作者
全局:
lee.leon1110 发表于 2018-3-6 11:12
第5题的答案应该是[A, B, C, D,E ] 吧?,因为都能到Safe啊

要排除有环的, A 不一定到  C D E,要是到了B就在环里的了
回复

使用道具 举报

🔗
wtcupup 2018-3-6 12:46:58 | 只看该作者
全局:
请问楼主 boolean matrix 那题是什么思路啊?感觉这题没什么算法啊
回复

使用道具 举报

🔗
 楼主| peterxianggao 2018-3-6 13:46:56 | 只看该作者
全局:
wtcupup 发表于 2018-3-6 12:46
请问楼主 boolean matrix 那题是什么思路啊?感觉这题没什么算法啊

这题没什么算法 就是考boolean operation
回复

使用道具 举报

🔗
619899442 2018-3-7 07:43:01 | 只看该作者
全局:
感谢楼主分享!

第五题还是有点不明白:假设有两个state A -> {B, safe}, B -> {A, safe},那么A和B是否应该被输出呢?
回复

使用道具 举报

🔗
619899442 2018-3-7 09:46:49 | 只看该作者
全局:
vtiaocao 发表于 2018-3-5 09:50
第五题这个「一定」有点意思了。。怎么解?普通BFS/DFS行吗?

完了 第二题不会。。回去刷tag。。3题原题 ...

我写了一个java的,手动测了几个test case没发现什么问题
  1. class Solver {
  2.     private boolean[] visited;
  3.     private boolean[] safe;


  4.     private boolean dfs(int node, Map<Integer, Set<Integer>> g, int safeNode) {

  5.         assert(!visited[node]);
  6.         if (g.get(node) == null) { // base case: dangling Node
  7.             visited[node] = true;
  8.             safe[node] = (node == safeNode);
  9.             return safe[node];
  10.         }

  11.         visited[node] = true;
  12.         for (int next : g.get(node)) {
  13.             if (visited[next]) {
  14.                 if (!safe[next]) {
  15.                     safe[node] = false;
  16.                     return false;
  17.                 }
  18.             } else {
  19.                 if (!dfs(next, g, safeNode)) {
  20.                     safe[node] = false;
  21.                     return false;
  22.                 }
  23.             }
  24.         }
  25.         safe[node] = true;
  26.         return true;
  27.     }

  28.     public List<Integer> solve(Map<Integer, Set<Integer>> g, int safeNode) {
  29.         visited = new boolean[safeNode + 1];
  30.         safe = new boolean[safeNode + 1];
  31.         for (int i = 0; i <= safeNode; ++i) {
  32.             if (!visited[i]) {
  33.                 dfs(i, g, safeNode);
  34.             }
  35.         }

  36.         List<Integer> res = new ArrayList<>();
  37.         for (int i = 0; i < safeNode; ++i) { // won't output safe node
  38.             if (safe[i]) {
  39.                 res.add(i);
  40.             }
  41.         }
  42.         return res;
  43.     }
  44. }
复制代码
回复

使用道具 举报

🔗
 楼主| peterxianggao 2018-3-7 13:23:30 | 只看该作者
全局:
619899442 发表于 2018-3-7 07:43
感谢楼主分享!

第五题还是有点不明白:假设有两个state A -> {B, safe}, B -> {A, safe},那么A和B是否 ...

这个情况不输出A B
回复

使用道具 举报

🔗
619899442 2018-3-7 13:24:15 | 只看该作者
全局:

Make sense! 谢谢啦
回复

使用道具 举报

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

本版积分规则

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