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

今年面得差不多了,热乎乎的palantir面筋送给大家

全局:

2014(10-12月) 码农类General 硕士 全职@Palantir - 校园招聘会 - 技术电面  | | Other |

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

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

x
面之前就觉着会比较难了。
有个tree,tree里面node的结构包含一个char和左右指针。同一个node的左右指针可以指向同一个child节点,不同node也可以指向相同chil
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
k个节点的存的char。考察点在于由于中序遍历时会有重复节点,如何才能节省时间找到第k个。楼主比较挫,不会做,大家可以讨论哈~

上一篇:拿到Epic的offer了,发onsite面经回报地里
下一篇:Pocket Gems Phone Interview
🔗
xlhdh 2014-12-19 05:55:14 | 只看该作者
全局:
如果有一个队伍 1, 2, 。。。 k, k+1, 。。。。 n, 第二次遇到某节点,就不再把它加入队伍中?

简单想的话就把每个节点涂上色,分别代表已遍历全部子树,已开始遍历子树,和从未遇到过这个节点,recurse的时候如果遇到见过的节点,就不recurse它了。。。Intro to Algorithms 有的。。
回复

使用道具 举报

🔗
xlhdh 2014-12-19 05:55:33 | 只看该作者
全局:
如果有一个队伍 1, 2, 。。。 k, k+1, 。。。。 n, 第二次遇到某节点,就不再把它加入队伍中?

简单想的话就把每个节点涂上色,分别代表已遍历全部子树,已开始遍历子树,和从未遇到过这个节点,recurse的时候如果遇到见过的节点,就不recurse它了。。。Intro to Algorithms 有的。。
回复

使用道具 举报

🔗
xlhdh 2014-12-19 05:55:47 | 只看该作者
全局:
如果有一个队伍 1, 2, 。。。 k, k+1, 。。。。 n, 第二次遇到某节点,就不再把它加入队伍中?

简单想的话就把每个节点涂上色,分别代表已遍历全部子树,已开始遍历子树,和从未遇到过这个节点,recurse的时候如果遇到见过的节点,就不recurse它了。。。Intro to Algorithms 有的。。
回复

使用道具 举报

🔗
北美农民 2014-12-19 05:57:44 | 只看该作者
全局:
加size域, 二分。 O(log n)
回复

使用道具 举报

🔗
zhongneu 2014-12-19 12:55:23 | 只看该作者
全局:
北美农民 发表于 2014-12-19 05:57
加size域, 二分。 O(log n)

能说具体一点吗?O(logn)是总的time complexity?
回复

使用道具 举报

🔗
shire1989 2015-1-29 06:26:03 | 只看该作者
全局:
北美农民 发表于 2014-12-19 05:57
加size域, 二分。 O(log n)

size域值得什么?
回复

使用道具 举报

🔗
liuzhe1218 2015-2-2 04:10:04 | 只看该作者
全局:
北美农民 发表于 2014-12-19 05:57
加size域, 二分。 O(log n)

你好,求教size域的具体解法。。
回复

使用道具 举报

🔗
liuzhe1218 2015-2-2 04:17:35 | 只看该作者
全局:
顺便贴上我的解法。。求各位大牛指正!
  1. public TreeNode getNodeK(TreeNode root, int k){
  2.                 if (root == null || k <= 0){
  3.                         return null;
  4.                 }
  5.                 Stack<TreeNode> s = new Stack<TreeNode>();
  6.                 Set<TreeNode> visited = new HashSet<TreeNode>();
  7.                 TreeNode rst = null;
  8.                 TreeNode p = root;
  9.                 int counter = 0;
  10.                
  11.                 while (s.size() > 0 || p != null){
  12.                         if (p != null && !visited.contains(p)){
  13.                                 s.push(p);
  14.                                 p = p.left;
  15.                         }
  16.                         else{
  17.                                 p = s.pop();
  18.                                 visited.add(p);
  19.                                 counter++;
  20.                                 if (counter == k){
  21.                                         rst = p;
  22.                                         break;
  23.                                 }
  24.                                 p = visited.contains(p.right) ? null : p.right;
  25.                         }
  26.                 }
  27.                 return rst;
  28.         }
复制代码
回复

使用道具 举报

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

本版积分规则

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