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

FB onsite挂经

🔗
 楼主| essence-16 2017-11-17 21:41:45 | 只看该作者
全局:
对 所以是楼上说的词典+phonecombination, 要注意5个一的情况
回复

使用道具 举报

🔗
 楼主| essence-16 2017-11-17 21:42:04 | 只看该作者
全局:
king_lm 发表于 2017-11-17 14:26
感谢楼主,针对你给的例子,我是不是可以理解成,存在这样的mapping关系
1 ---> a
11 ---> b


对 所以是楼上说的词典+phonecombination, 要注意5个一的情况
回复

使用道具 举报

🔗
 楼主| essence-16 2017-11-17 21:42:50 | 只看该作者
全局:
PowerToCoding 发表于 2017-11-17 01:09
请问lz什么时候能知道自己面的组?机票酒店已经定了,后面会有另外的关于具体面试的邮件吗

你可以问hr要相关info,他们都很愿意帮忙 一开始不定组 定方向。
回复

使用道具 举报

🔗
yikehongxin 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
这个该怎么写啊??层主写过吗

我刚才尝试写了一个,在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) {}
* };
*/
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);
    }
}
回复

使用道具 举报

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

本版积分规则

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