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

非死不可 店面

全局:

2018(10-12月) 码农类General 本科 实习@meta - 内推 - 技术电面  | | Other | 应届毕业生

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

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

x
一轮 国人哥哥
您好!
本帖隐藏的内容需要积分高于 200 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 200 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限 或 查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies


二轮 三姐
您好!
本帖隐藏的内容需要积分高于 200 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 200 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限 或 查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies



希望三姐能给过啊。。。去年挂在二面 今年再挂在二面 就要哭死了发个帖子 攒个人品。。
新来的 才开始找工作 求大米~~

评分

参与人数 5大米 +21 收起 理由
drool + 5 很有用的信息!
Aaron97 + 3 给你点个赞!
pandami + 5 给你点个赞!
spinova + 5 很有用的信息!
drift1981 + 3 很有用的信息!

查看全部评分


上一篇:Google Intern OA
下一篇:google 11/7 OA
推荐
DylanZhang 2018-11-9 08:53:36 | 只看该作者
全局:
我说一个leaf to root的思路,就是从下往上返回一个List<StringBuilder>, 每个root都把左右子节点返回的Stringbuilder append当前root。代码如下:

  1.         public List<String> leafToRootPath(TreeNode root){
  2.                 // get a list of StringBuilder
  3.                 List<StringBuilder> sbs = pathHelper(root);               
  4.                 List<String> res = new ArrayList<>(sbs.size());
  5.                
  6.                 // transfer to String
  7.                 for(StringBuilder sb : sbs){
  8.                         res.add(sb.toString());
  9.                 }
  10.                
  11.                 return res;
  12.         }

  13.         private List<StringBuilder> pathHelper(TreeNode root) {
  14.                 // return nothing
  15.                 if(root == null) return new ArrayList<>();
  16.                
  17.                 // leaf node
  18.                 if(root.left == null && root.right == null){
  19.                         List<StringBuilder> res = new ArrayList<>();
  20.                         res.add(new StringBuilder().append(root.key));
  21.                         return res;
  22.                 }
  23.                
  24.                 // get path from left and right
  25.                 List<StringBuilder> left = pathHelper(root.left);
  26.                 List<StringBuilder> right = pathHelper(root.right);
  27.                 // merge path from two subtree
  28.                 left.addAll(right);
  29.                 // add current node to path
  30.                 for(StringBuilder sb : left){
  31.                         sb.append(root.key);
  32.                 }
  33.                
  34.                 return left;
  35.         }
复制代码
回复

使用道具 举报

推荐
DylanZhang 2018-11-10 00:22:23 | 只看该作者
全局:
时间复杂度是O(n)每个点被遍历visit两边,往下一遍,往上一遍。空间复杂度不考虑答案本身最坏的空间是O(n), used by call stack.
这道题我觉得不可能做到小于O(n)的,因为path的问题规模已经是Ω(n)了。除非他问的不是path本身是什么,而是path有多少个。
回复

使用道具 举报

推荐
VivianUp 2018-11-9 14:38:37 | 只看该作者
全局:
DylanZhang 发表于 2018-11-9 08:53
我说一个leaf to root的思路,就是从下往上返回一个List, 每个root都把左右子节点返回的Stringbuilder appe ...

请问时间复杂度是多少?log n 或 h吗?

评分

参与人数 1大米 +1 收起 理由
DylanZhang + 1 赞一个

查看全部评分

回复

使用道具 举报

🔗
 楼主| changyue5230 2018-11-9 03:22:57 | 只看该作者
全局:
楼主蠢了 不会加 隐藏内容、、
回复

使用道具 举报

🔗
drift1981 2018-11-9 03:27:43 | 只看该作者
全局:
LZ加油,希望你能拿到昂赛
回复

使用道具 举报

全局:
print是什么顺序?从最底层开始按层print?
回复

使用道具 举报

🔗
 楼主| changyue5230 2018-11-9 06:57:28 | 只看该作者
全局:
pandami 发表于 2018-11-9 06:27
print是什么顺序?从最底层开始按层print?

从leat到root的顺序 打印
回复

使用道具 举报

🔗
drift1981 2018-11-9 08:17:09 | 只看该作者
全局:
leaf to root正确的思路应该是什么啊,用map映射child parent 关系,然后碰到leaf就遍历map一直print找到root?
回复

使用道具 举报

🔗
ma1doo 2018-11-9 10:48:36 | 只看该作者
全局:
leaf 到 root 用 buttom up ?
然后 stringbuilder reverse的complexity是O(n) 如果加在一起的话 是O(n^2) ?
回复

使用道具 举报

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

本版积分规则

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