12
返回列表 发新帖
楼主: lanyexiaosa369
跳转到指定楼层
上一主题 下一主题
收起左侧

Facebook背靠背实习挂经

🔗
say543 2018-11-17 08:01:42 | 只看该作者
全局:
lanyexiaosa369 发表于 2018-11-16 13:23
对的,要求是O(n)的,蠡口貌似有人做出来了

思思就   只要生成任意一个valid bst tree 就行了吗 ?
回复

使用道具 举报

🔗
 楼主| lanyexiaosa369 2018-11-17 08:05:28 | 只看该作者
全局:
balla2011 发表于 2018-11-17 07:54
多谢lz的分享~所以lz面完第二天就出回复了???怎么感觉有的等回复等了十几天,lz这么快呢~

看不同的HR吧,我这个感觉还挺responsive的
回复

使用道具 举报

🔗
 楼主| lanyexiaosa369 2018-11-17 08:12:22 | 只看该作者
全局:
say543 发表于 2018-11-17 08:01
思思就   只要生成任意一个valid bst tree 就行了吗 ?

和面试官讨论的,确定是挨个遍历就行了,这个方法生成的是unique的,没有说要高度最小
回复

使用道具 举报

🔗
say543 2018-11-18 15:33:57 | 只看该作者
全局:
lanyexiaosa369 发表于 2018-11-17 08:12
和面试官讨论的,确定是挨个遍历就行了,这个方法生成的是unique的,没有说要高度最小


if input 是[3,5,2] 你要怎么挨个遍寻? o(n) 怎么做到?
回复

使用道具 举报

🔗
zjd005 2018-11-24 13:43:01 | 只看该作者
全局:
求问下第二题怎么体现order的 对于java是不是就是treeset这种数据结构
回复

使用道具 举报

🔗
 楼主| lanyexiaosa369 2018-11-26 05:59:54 | 只看该作者
全局:
zjd005 发表于 2018-11-24 13:43
求问下第二题怎么体现order的 对于java是不是就是treeset这种数据结构

差不多的
回复

使用道具 举报

🔗
balla2011 2018-11-26 14:56:47 | 只看该作者
全局:
想问下lz,hr直接跟你说要个时间背靠背么?我是master实习,不知道能不能背靠背
回复

使用道具 举报

🔗
qingshan412 2018-11-27 02:47:46 | 只看该作者
全局:
按449做好像会有点问题,应该可以直接按 bst 插入元素来做?就是直接build一个bst那样?
回复

使用道具 举报

🔗
ch8728487 2018-11-27 04:24:28 | 只看该作者
全局:
如果O(N)可做的话,那么inorder traverse BSTtree得到排好序的列表 (O(N)复杂度),也就是说我们可以O(N)排序一个无序的列表?
回复

使用道具 举报

全局:
依我来看,给出的应该不是一随意的乱序,而是一个BST的先根序遍历。所以还是照搬449的做法。
  1. class TreeNode(object):
  2.     def __init__(self, x):
  3.         self.val = x
  4.         self.left = None
  5.         self.right = None

  6. class Codec:

  7.     def serialize(self, root):
  8.         """Encodes a tree to a single string.

  9.         :type root: TreeNode
  10.         :rtype: str
  11.         """
  12.         R = []
  13.         L = [root]

  14.         def DFS(node):
  15.             if node:
  16.                 R.append(node.val)
  17.                 DFS(node.left)
  18.                 DFS(node.right)

  19.         DFS(root)
  20.         return R

  21.     def deserialize(self, data):
  22.         """Decodes your encoded data to tree.

  23.         :type data: str
  24.         :rtype: TreeNode
  25.         """

  26.         def BuildTree(start, end):
  27.             if start >= end:
  28.                 return None
  29.             i = start + 1
  30.             while i < end and data[i] < data[start]:
  31.                 i += 1
  32.             root = TreeNode(data[start])
  33.             root.left = BuildTree(start + 1, i)
  34.             root.right = BuildTree(i, end)
  35.             return root

  36.         return BuildTree(0, len(data))
复制代码
回复

使用道具 举报

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

本版积分规则

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