一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 678|回复: 5
收起左侧

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

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

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

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

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

x
电面1:.鏈枃鍘熷垱鑷1point3acres璁哄潧
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:.1point3acres缃
Quesion: Find the most frequent element in a binary search tree
left child <= root <= right child

不用任何数据结构,求大神指导

评分

1

查看全部评分

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, 如果遇到不一样的就更新前两个,和后两个
回复 支持 反对

使用道具 举报

nothingtrouble 发表于 2016-3-18 12:24:44 | 显示全部楼层
godstears 发表于 2016-3-18 11:25
自问自答,有朋友帮我想出来了,4 variable: mostFreEle, mostFreCount, curEle, curCount,然后inorder tra ...
. From 1point 3acres bbs
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
  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
  7.         if(root.right!=null && root.right.val==root.val) count+=rightCount; //right child is equal to root value, sum up its count
  8.         if(maxc<count){
  9.                 maxc = count;. visit 1point3acres.com for more.
  10.                 maxv = root.val;-google 1point3acres
  11.         }
  12.         return count;
  13. }
复制代码
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

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

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-10 13:48

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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