《数据科学面试40+真题讲解》,K神本年度最后一次开课


一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
码农求职神器Triplebyte:
不用海投,内推你去多家公司面试
Airbnb 数据科学职位
in analytics and inference
天天打游戏、照样领工资,
你要不要来?
把贵司招聘信息放这里
查看: 1569|回复: 6
收起左侧

散步近期面经:Lyft 电面 1 和电面 2

[复制链接] |试试Instant~ |关注本帖
godstears 发表于 2016-3-18 10:39:56 | 显示全部楼层 |阅读模式

2016(1-3月) 码农类 硕士 全职@Lyft - 内推 - 技术电面 |Other在职跳槽

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

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

x
电面1:
Question1:Find second largest element in a binary search tree (leetcode). 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
Question2:
input:   [1, 2, 3, 4]
output: [24, 12, 8, 6]
The product of the all elements in the array except the current one (dp 2 array saving the cumulative product from beginning and from end)

电面2:-google 1point3acres
Quesion: Find the most frequent element in a binary search tree
left child <= root <= right child
.鏈枃鍘熷垱鑷1point3acres璁哄潧
不用任何数据结构,求大神指导

评分

1

查看全部评分

nothingtrouble 发表于 2016-3-18 12:24:44 | 显示全部楼层
godstears 发表于 2016-3-18 11:25
自问自答,有朋友帮我想出来了,4 variable: mostFreEle, mostFreCount, curEle, curCount,然后inorder tra ...

inorder traversal肯定是正解,不过似乎可以更简单。定义一个countOfRootValue函数,就是count以当前节点为root的subtree里面有多少个节点跟它的值相同,那么左右child如果跟它一样,加上他们的结果,如果不一样,返回1, 因为此节点值唯一,同时更新最大值
  1. public int countOfRootValue(TreeNode root){
  2.         if(root==null) return 0; //null return 0 frequency
  3.         int count = 1; //Suppose root.val is always equal to root value. visit 1point3acres.com for more.
  4.         int leftCount = countOfRootValue(root.left);
  5.         int rightCount = countOfRootValue(root.right);
  6.         if(root.left!=null && root.left.val==root.val) count+=leftCount; //left child is equal to root value, sum up its count. 鍥磋鎴戜滑@1point 3 acres
  7.         if(root.right!=null && root.right.val==root.val) count+=rightCount; //right child is equal to root value, sum up its count. 1point3acres.com/bbs
  8.         if(maxc<count){
  9.                 maxc = count;
  10.                 maxv = root.val;
  11.         }
  12.         return count;
  13. }
复制代码
回复 支持 1 反对 0

使用道具 举报

Ulu2005 发表于 2016-3-18 10:50:35 | 显示全部楼层
第二题如果most frequent element保证能出现次数 >= [n/2] 次的话,可以用majority element的方法做。不是的话,就求大神解答了。。
回复 支持 反对

使用道具 举报

 楼主| godstears 发表于 2016-3-18 11:00:23 | 显示全部楼层
Ulu2005 发表于 2016-3-18 10:50
第二题如果most frequent element保证能出现次数 >= [n/2] 次的话,可以用majority element的方法做。不是 ...

不是,不保证,这个recursion闹心呢
回复 支持 反对

使用道具 举报

 楼主| godstears 发表于 2016-3-18 11:25:58 | 显示全部楼层
自问自答,有朋友帮我想出来了,4 variable: mostFreEle, mostFreCount, curEle, curCount,然后inorder traversal,不断更新后两个variable, 如果遇到不一样的就更新前两个,和后两个
回复 支持 反对

使用道具 举报

cuiyang36 发表于 2017-6-29 16:30:23 | 显示全部楼层
请问一下电面2:
是不能用任何数据结构 还是 不能用任何extra space?不能用任何数据结构  -> 是指不能用例如stack 和 queue?
我感觉如果是:
1)不用任何数据结构,then recursive method, keep updating local, global max val
2 ) 不用任何extra space, morris inorder traversal (https://en.wikipedia.org/wiki/Tree_traversal#Morris_in-order_traversal_using_threading) with 4 params
如果是后者, Lyft电面有点DIAO啊。。。。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2017-11-18 23:58

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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