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

FB onsite挂经

全局:

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

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

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

x
FB onsite 挂经, 面的是research scientist,(好像SDE wit
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
dertraversal的iterator.

评分

参与人数 3大米 +7 收起 理由
lanking + 5 很有用的信息!
kevintong + 1 给你点个赞!
qpalzm0827 + 1 很有用的信息!

查看全部评分


上一篇:[持续更新] Palantir FDSE Intern 电面+OA
下一篇:高盛onsite挂经
推荐
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) {}
* };
*/
class Solution {
public:
  class Iterator {
  
  public:
    stack<TreeNode *> mystack;
    TreeNode * last_visited = NULL;
    Iterator(TreeNode *root) {
      insert(root);
    }
    void insert(TreeNode * p){
      if(!p)
        return;
      while(true){
        while(p->left){
          mystack.push(p);
          p = p->left;
        }
        mystack.push(p);
        if(p->right){
          p = p->right;
        }
        else{
          return;
        }
      }
      return;
    }
  
    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);
    vector<int> result;
    while(iter.hasNext()){
      result.push_back(iter.next());
    }
    return result;


  }
};
回复

使用道具 举报

推荐
linjin 2017-12-4 16:19:54 | 只看该作者
全局:
#include <vector>
#include <iostream>
#include <stdio.h>
#include <unordered_map>
#include <queue>
#include <climits>
#include <algorithm>
#include <string.h>
#include <stack>

using namespace std;

struct TreeNode{
  int val;
  TreeNode *left, *right;
  TreeNode(int v) {
    val=v;
    left=right=nullptr;
  }
};

stack<TreeNode *> st;

bool hasNext() {
  return !st.empty();
}

TreeNode *Next() {
  auto root = st.top();
  st.pop();

  if (!st.empty() && root->right==st.top()) {

     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;
  }

}

main() {
    TreeNode* root = NULL;
    root = new TreeNode(1);
    root->left = new TreeNode(2);
    root->right = new TreeNode(3);
    root->left->left = new TreeNode(4);
    root->left->right = new TreeNode(5);
    root->right->left = new TreeNode(6);
    root->right->right = new TreeNode(7);

    buildPostIterator(root);
    while (hasNext()) {
      printf ("%d \n", Next()->val);
    }
}
回复

使用道具 举报

推荐
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
1 11
11  1
111
感觉很像decode way的变种。是么?
请问最后输出所有decode的方案么?
回复

使用道具 举报

🔗
king_lm 2017-11-15 04:00:26 | 只看该作者
全局:
请教LZ post order traversal 那题怎么解呀?是binary tree的iterator么?
回复

使用道具 举报

🔗
 楼主| essence-16 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面的什么吗?
回复

使用道具 举报

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

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

评分

参与人数 1大米 +1 收起 理由
kevintong + 1 很有用的信息!

查看全部评分

回复

使用道具 举报

🔗
 楼主| essence-16 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什么时候能知道自己面的组?机票酒店已经定了,后面会有另外的关于具体面试的邮件吗
回复

使用道具 举报

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

本版积分规则

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