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

狗家阳谷昂赛特

全局:

2019(7-9月) 码农类General 硕士 全职@google - 内推 - Onsite  | | Fail | 在职跳槽

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

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

x
上个月面的,因为有内推所以recruiter给skip了电面。4轮算法+1轮BQ
1. 两个人玩占领二叉树的游戏,二叉树的node可以往parent,left child,right child走,问如果你是后者开始占领的人,选哪个点获胜的可能性最大。
Follow up:如果你是先走的人,应该选哪一个点开
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
什么时候全部都互相成为好朋友。
5. BQ 主要问做了什么项目,如何跟同事合作的。还问了Accessibility相关的问题,如何让客户更好的使用产品。

评分

参与人数 18大米 +58 收起 理由
KuanCNTF + 3 给你点个赞!
halolk1 + 1 很有用的信息!
pudding0129 + 1 赞一个
水晶月 + 2 赞一个!
zzwzzw435 + 2 给你点个赞!

查看全部评分


上一篇:SAP OA
下一篇:Scotiabank - Toronro - digital factory - senior dev - OA

本帖被以下淘专辑推荐:

  • · google|主题: 216, 订阅: 124
推荐
zzwzzw435 2019-8-21 02:41:45 | 只看该作者
全局:
本帖最后由 zzwzzw435 于 2019-8-21 03:29 编辑
tianjiayou 发表于 2019-8-20 11:15
我其实没get到。。因为每个课程的indegree和outdegree不一定是1,这样的话,怎么算呢?

感觉还是可以做,和indegree,outdegree并没有太大关系
  1. class Solution {
  2.     public int minSemester(int numCourses, int[][] prerequisites,int k) {
  3.         int completedCourses = 0;
  4.         List<Integer>[] nextCourses = new List[numCourses];
  5.         int[] height = new int[numCourses];
  6.         for(int i =0; i<numCourses; i++){
  7.             nextCourses[i] = new ArrayList<>();
  8.         }
  9.         int[] incomingEdgesCount = new int[numCourses];
  10.         for(int[] i:prerequisites){
  11.             incomingEdgesCount[i[0]]++;
  12.             nextCourses[i[1]].add(i[0]);               
  13.         }
  14.         // for(int i : incomingEdgesCount){
  15.         //     System.out.print(i+" ");
  16.         // }
  17.         for(int i = 0; i < height.length; i++){
  18.             if(height[i] == 0)
  19.                height[i] = getHeight(height,nextCourses,i);
  20.         }
  21.         
  22.         PriorityQueue<int[]> pq = new PriorityQueue<>(new Comparator<int[]>(){
  23.             public int compare(int[] a, int [] b){
  24.                 return b[1] - a[1];
  25.             }
  26.         });
  27.         // Add all nodes that have indegree zero to the BFS queue
  28.         for(int i = 0; i<incomingEdgesCount.length; i++){
  29.             if(incomingEdgesCount[i] == 0){
  30.                 pq.offer(new int[]{i,height[i]});
  31.             }
  32.         }
  33.         // Bfs starting with indegree 0  
  34.         int semester = 0;
  35.         while(!pq.isEmpty()){
  36.             semester++;
  37.             int num = pq.size();
  38.             for(int g = 0; g < k && !pq.isEmpty() && g < num; g++){
  39.             int[] course = pq.poll();
  40.             completedCourses++;
  41.             for(int i : nextCourses[course[0]]){
  42.                 incomingEdgesCount[i]--;
  43.                 if(incomingEdgesCount[i] == 0){
  44.                     pq.offer(new int[]{i,height[i]});
  45.                 }
  46.             }
  47.             }
  48.         }
  49.         //System.out.println(completedCourses);
  50.         return semester;   
  51.     }
  52.     private int getHeight(int[] height,List<Integer>[] nexts,int idx){
  53.         List<Integer> next = nexts[idx];
  54.         if(next.size() == 0){
  55.             return 1;
  56.         }
  57.         if(height[idx] != 0){
  58.             return height[idx];
  59.         }
  60.         int max = 0;
  61.         for(int n : next){
  62.             max = Math.max(max,getHeight(height,nexts,n));
  63.         }
  64.         return max + 1;
  65.     }
  66. }
复制代码


评分

参与人数 3大米 +5 收起 理由
pflugchristian + 1 给你点个赞!
水晶月 + 2 赞一个!
zmrs + 2 很有用的信息!

查看全部评分

回复

使用道具 举报

推荐
zzwzzw435 2019-8-21 03:25:17 | 只看该作者
全局:
tianjiayou 发表于 2019-8-21 02:56
我觉得还是有问题,这种做法我想过;
看下我这个例子;这里2是7的parent(实在是不好画 lol)1是2,3,4,5 ...

没有问题啊,345的height都是3,而2的height是2,所以先入345,再入2,6。下面是我跑的结果
0
243
15
6
total:4

评分

参与人数 2大米 +4 收起 理由
水晶月 + 2 赞一个!
zmrs + 2 很有用的信息!

查看全部评分

回复

使用道具 举报

推荐
jobsjobs 2019-8-20 14:03:06 | 只看该作者
全局:
第一个问题是 Leetcode 1145 新题
https://leetcode.com/problems/binary-tree-coloring-game/

评分

参与人数 1大米 +1 收起 理由
pflugchristian + 1 给你点个赞!

查看全部评分

回复

使用道具 举报

🔗
wujiandaoxy 2019-8-19 11:59:08 | 只看该作者
全局:
支持下楼主分享,很有参考意义
回复

使用道具 举报

🔗
dengzeyu147 2019-8-19 14:14:30 | 只看该作者
全局:
请问第二题是那个投票面经题?如果不是,能请楼主解释一下?已加米
回复

使用道具 举报

🔗
crlyw 2019-8-19 21:40:15 | 只看该作者
全局:
请问第一题的那个获胜条件是什么?
回复

使用道具 举报

全局:
请问,第一题,对方经过的已经占领的点,我还可以经过吗 或者我只能经过那些未被占领的点?
回复

使用道具 举报

🔗
tianjiayou 2019-8-20 06:02:26 | 只看该作者
全局:
求问楼主course schedule的follow up怎么回答的?
回复

使用道具 举报

🔗
zzwzzw435 2019-8-20 10:37:16 | 只看该作者
全局:
tianjiayou 发表于 2019-8-20 06:02
求问楼主course schedule的follow up怎么回答的?

我的思路是用priorityQueue每次pop剩余课程最多的课程串,比如1->2->3->4, 5->6, 7->8,三个课程序列,k=2的时候,上课顺序1,5 -> 2, 7 - > 3,6 -> 4,8 这样

评分

参与人数 3大米 +5 收起 理由
pflugchristian + 1 给你点个赞!
zmrs + 2 给你点个赞!
水晶月 + 2 赞一个!

查看全部评分

回复

使用道具 举报

🔗
luoyu 2019-8-20 10:56:53 | 只看该作者
全局:
支持楼主分享
回复

使用道具 举报

全局:
zzwzzw435 发表于 2019/08/20 10:37:16


我的思路是用priorityQueue每次pop剩余课程最多的课程串,比如1->2->3->4, 5->6, 7->8,三个课程序列,k=2的时候,上课顺序1,5 -> 2, 7 - > 3,6 ...

我其实没get到。。因为每个课程的indegree和outdegree不一定是1,这样的话,怎么算呢?
回复

使用道具 举报

🔗
 楼主| michelletsao9 2019-8-20 11:57:34 | 只看该作者
全局:
crlyw 发表于 2019-8-19 21:40
请问第一题的那个获胜条件是什么?

获胜条件是最后能占领最多的Nodes
回复

使用道具 举报

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

本版积分规则

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