一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
码农求职神器Triplebyte:
不用海投,内推多家公司面试
Airbnb 数据科学职位
in analytics and inference
游戏初创公司
招聘工程师、Designer和游戏策划
游戏初创公司DreamCraft招聘工程师、UIUX Designer和游戏策划
电商初创公司Good Days
招聘SDE/UI/TPM实习生
把贵司招聘信息放这里
查看: 1741|回复: 19
收起左侧

FB onsite挂经

[复制链接] |试试Instant~ |关注本帖
ydxu16 发表于 2017-11-14 22:34:23 | 显示全部楼层 |阅读模式

2017(7-9月) 码农类 博士 全职@Facebook - 猎头 - Onsite |Failfresh grad应届毕业生

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

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

x
FB onsite 挂经, 面的是research scientist,(好像SDE with Phd都是这个title),主要的coding两轮都没有面到原题,挂在两道题上 有一题是phone letter combination的变形,需要实现键盘手机的输入法,还有一题是实现postordertraversal的iterator.

评分

3

查看全部评分

king_lm 发表于 2017-11-15 04:00:26 | 显示全部楼层
请教LZ post order traversal 那题怎么解呀?是binary tree的iterator么?
回复 支持 反对

使用道具 举报

 楼主| ydxu16 发表于 2017-11-15 04:07:55 | 显示全部楼层
king_lm 发表于 2017-11-15 04:00
请教LZ post order traversal 那题怎么解呀?是binary tree的iterator么?

是的,这个是比较经典的题但要求的是iterator而我只记得一遍过。
回复 支持 反对

使用道具 举报

qpalzm0827 发表于 2017-11-15 10:47:49 | 显示全部楼层
postorder iterator 不是一般的复杂啊...  如果用stack做的话, 需要记住节点是只往左走, 还是左右都走过了, 楼主是写了wrapper class做的吗?
回复 支持 反对

使用道具 举报

king_lm 发表于 2017-11-15 23:08:42 | 显示全部楼层
ydxu16 发表于 2017-11-15 04:07
是的,这个是比较经典的题但要求的是iterator而我只记得一遍过。

嗯嗯多谢, 那第一题那个完成输入法请问是什么意思呀?
回复 支持 反对

使用道具 举报

kevintong 发表于 2017-11-16 15:06:03 | 显示全部楼层
phone letter combination+词典绝对是高频了,可能楼主比较忙。第二题有点偏了,楼主方便介绍一下ML面的什么吗?
回复 支持 反对

使用道具 举报

 楼主| ydxu16 发表于 2017-11-17 00:38:19 | 显示全部楼层
kevintong 发表于 2017-11-16 15:06
phone letter combination+词典绝对是高频了,可能楼主比较忙。第二题有点偏了,楼主方便介绍一下ML面的什 ...

嗯第一题我看过原题,变形版没见过,我面的是infastructure 没有ml, infastructure面的是如何design twitter

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

 楼主| ydxu16 发表于 2017-11-17 00:39:06 | 显示全部楼层
king_lm 发表于 2017-11-15 23:08
嗯嗯多谢, 那第一题那个完成输入法请问是什么意思呀?

那个意思就是说比如1代表abcd,你输入一个1得到a输入两个1得到aa or b, 三个1: aaa ab ba c 诸如此类
回复 支持 反对

使用道具 举报

PowerToCoding 发表于 2017-11-17 01:09:03 | 显示全部楼层
请问lz什么时候能知道自己面的组?机票酒店已经定了,后面会有另外的关于具体面试的邮件吗
回复 支持 反对

使用道具 举报

king_lm 发表于 2017-11-17 14:26:28 | 显示全部楼层
ydxu16 发表于 2017-11-17 00:39
那个意思就是说比如1代表abcd,你输入一个1得到a输入两个1得到aa or b, 三个1: aaa ab ba c 诸如此类

感谢楼主,针对你给的例子,我是不是可以理解成,存在这样的mapping关系
1 ---> a
11 ---> b
111 ---> c
1111  ---> d
然后输入 111
可以输出 aaa; ab; ba, c
因为可以看成
1 1 1. 鍥磋鎴戜滑@1point 3 acres
1 11
11  1. 1point3acres.com/bbs
111
感觉很像decode way的变种。是么?
请问最后输出所有decode的方案么?
回复 支持 反对

使用道具 举报

 楼主| ydxu16 发表于 2017-11-17 21:41:45 | 显示全部楼层
对 所以是楼上说的词典+phonecombination, 要注意5个一的情况
回复 支持 反对

使用道具 举报

 楼主| ydxu16 发表于 2017-11-17 21:42:04 | 显示全部楼层
king_lm 发表于 2017-11-17 14:26
感谢楼主,针对你给的例子,我是不是可以理解成,存在这样的mapping关系
1 ---> a
11 ---> b

. more info on 1point3acres.com
对 所以是楼上说的词典+phonecombination, 要注意5个一的情况
回复 支持 反对

使用道具 举报

 楼主| ydxu16 发表于 2017-11-17 21:42:50 | 显示全部楼层
PowerToCoding 发表于 2017-11-17 01:09. more info on 1point3acres.com
请问lz什么时候能知道自己面的组?机票酒店已经定了,后面会有另外的关于具体面试的邮件吗
. 1point3acres.com/bbs
你可以问hr要相关info,他们都很愿意帮忙 一开始不定组 定方向。
回复 支持 反对

使用道具 举报

daguanyuan 发表于 2017-11-29 01:18:29 | 显示全部楼层
iterator后续遍历就是面试官要挂你的节奏,做好了,后面还会有恶心你的题目
回复 支持 反对

使用道具 举报

manmankan 发表于 2017-12-1 06:21:42 | 显示全部楼层
感谢楼主分享!
回复 支持 反对

使用道具 举报

get_bits 发表于 2017-12-1 17:06:39 来自手机 | 显示全部楼层
daguanyuan 发表于 2017-11-29 01:18
iterator后续遍历就是面试官要挂你的节奏,做好了,后面还会有恶心你的题目

这个该怎么写啊??层主写过吗
回复 支持 反对

使用道具 举报

huangya2 发表于 2017-12-4 10:21:35 | 显示全部楼层
感谢分享! 楼主好运!
回复 支持 反对

使用道具 举报

alanlxl 发表于 2017-12-4 14:23:29 | 显示全部楼层
get_bits 发表于 2017-12-1 17:06. from: 1point3acres.com/bbs
这个该怎么写啊??层主写过吗

我刚才尝试写了一个,在leetcode的后序遍历那个题里AC了,贴一下代码给大家

回复 支持 反对

使用道具 举报

alanlxl 发表于 2017-12-4 14:24:04 | 显示全部楼层
二叉树后序遍历的Iterator
/**. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
* Definition for a binary tree node.
* struct TreeNode {
*     int val;
*     TreeNode *left;
*     TreeNode *right;
*     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };. from: 1point3acres.com/bbs
*/
class Solution {
public:
  class Iterator {
  
  public:
    stack<TreeNode *> mystack;
    TreeNode * last_visited = NULL;
    Iterator(TreeNode *root) {. 1point 3acres 璁哄潧
      insert(root);
    }. more info on 1point3acres.com
    void insert(TreeNode * p){
      if(!p)
        return;
      while(true){
        while(p->left){
          mystack.push(p);
          p = p->left;
        }
        mystack.push(p);
        if(p->right){. 鍥磋鎴戜滑@1point 3 acres
          p = p->right;
        }
        else{
          return;
        }
      }
      return;
    }.鏈枃鍘熷垱鑷1point3acres璁哄潧
  
    bool hasNext() {
      return !mystack.empty();
    }
  
    int next() {
      TreeNode * p = mystack.top();
      if(!p->right || p->right == last_visited){
        mystack.pop();
        last_visited = p;
        return p->val;
      }
      else{. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
        insert(p->right);
        p = mystack.top();
        mystack.pop();
        last_visited = p;
        return p->val; 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
      }
    }
  };
  vector<int> postorderTraversal(TreeNode* root) {
    Iterator iter(root);. more info on 1point3acres.com
    vector<int> result;
    while(iter.hasNext()){
      result.push_back(iter.next());.1point3acres缃
    }. 1point3acres.com/bbs
    return result;


  }.鏈枃鍘熷垱鑷1point3acres璁哄潧
};.鐣欏璁哄潧-涓浜-涓夊垎鍦
回复 支持 反对

使用道具 举报

linjin 发表于 2017-12-4 16:19:54 | 显示全部楼层
#include <vector>
#include <iostream>
#include <stdio.h>
#include <unordered_map>
#include <queue>. more info on 1point3acres.com
#include <climits>
#include <algorithm>. 1point 3acres 璁哄潧
#include <string.h>. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
#include <stack>
. Waral 鍗氬鏈夋洿澶氭枃绔,
using namespace std;

struct TreeNode{
  int val;. visit 1point3acres.com for more.
  TreeNode *left, *right;
  TreeNode(int v) {.1point3acres缃
    val=v;
    left=right=nullptr;
  }
};

stack<TreeNode *> st;

bool hasNext() {. from: 1point3acres.com/bbs
  return !st.empty();
}
. visit 1point3acres.com for more.
TreeNode *Next() {
  auto root = st.top();. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  st.pop();

  if (!st.empty() && root->right==st.top()) {. 1point3acres.com/bbs

     auto cur = st.top();
     st.pop(); 鏉ユ簮涓浜.涓夊垎鍦拌鍧.

     st.push(root);
     while (cur) {
       if (cur->right)
         st.push(cur->right);
       st.push(cur);
       cur=cur->left;
    }
    return Next();
  }
  else{
    return root;
  }
}

void buildPostIterator(TreeNode *root) {
  while (root) {
    if (root->right) {
      st.push(root->right);
    }
    st.push(root);. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
    root=root->left;. 1point 3acres 璁哄潧
  }

}
. 1point3acres.com/bbs
main() {
    TreeNode* root = NULL;
    root = new TreeNode(1);. visit 1point3acres.com for more.
    root->left = new TreeNode(2);
    root->right = new TreeNode(3);
    root->left->left = new TreeNode(4);
    root->left->right = new TreeNode(5);. from: 1point3acres.com/bbs
    root->right->left = new TreeNode(6);. Waral 鍗氬鏈夋洿澶氭枃绔,
    root->right->right = new TreeNode(7);

    buildPostIterator(root);.鐣欏璁哄潧-涓浜-涓夊垎鍦
    while (hasNext()) {
      printf ("%d \n", Next()->val);
    }
}
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2018-1-20 03:57

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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