回复: 10
收起左侧

facebook面经题,求教。+40大米

本楼:   👍  0
0%
0%
0   👎
全局:   9539
89%
11%
1176

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

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

x
就是那2道经典的题。
一个是dot product的优化。我开始一看是leetcode原体,但是发现题目要求是非常巨大的2个matrix,不能直接求???
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
smilieid="108" border="0" alt="" />

点评

楼下,我会给你们陆续加分的  发表于 2016-3-4 09:13

评分

参与人数 1大米 +3 收起 理由
abcdldzy + 3 给你点个赞!

查看全部评分


上一篇:挂的不明不白 @liveramp @akuna @transmarket
下一篇:Bloomberg电面3.3
Jester_Z 2016-3-4 06:36:41 | 显示全部楼层
本楼:   👍  1
100%
0%
0   👎
全局:   264
99%
1%
2
binary tree to double direction linked list 是这个 O(N) 中序走一下就可以了
http://articles.leetcode.com/convert-binary-search-tree-bst-to/
double direction linked list to binary tree 应该类似这个 这样是尽量平衡的 O(N) 应bottom-up的递归
https://leetcode.com/problems/convert-sorted-list-to-binary-search-tree/
点乘的题应该是这样
表示方法用(index, value) 如果是两个差不多长的 那么就存到哈希表里 然后对于一组元素建立好之后 遍历另一组 然后查询对应的index有没有
如果是一个长一个短  那么就用数组把长的(index, value)建立起来 然后短的每个元素二分查找
如果把一维向量扩展到二维的矩阵 如果要存数组的话 就可以用公式把坐标换成一维的
r,c 变成 r*列数 + c 变回来的话 用i/列数, i%列数


评分

参与人数 2大米 +30 收起 理由
sparrow52 + 20 虽然过去很久了。。但是感谢前辈!说的超清.
xiaozhuxiaozhu + 10 感谢分享!

查看全部评分

回复

使用道具 举报

cupcupcup 2016-3-4 06:11:38 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   194
93%
7%
15
我写了  字数字数字数

评分

参与人数 1大米 +10 收起 理由
xiaozhuxiaozhu + 10 感谢分享!

查看全部评分

扫码关注一亩三分地求职移民公众号
更多干货内容等你发现
回复

使用道具 举报

 楼主| xiaozhuxiaozhu 2016-3-4 06:21:31 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   9539
89%
11%
1176
woshixuyoudan 发表于 2016-3-4 06:11
我写了  字数字数字数

在哪呢,妹子
回复

使用道具 举报

cupcupcup 2016-3-4 06:39:15 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   194
93%
7%
15

忽然发现第一个我只写了tree --> doubly linked list  没有倒着写= =  sorry
第二个我是用map嵌套map的。。然后是O(n*m)的时间复杂度。。
不知道对不对。。

评分

参与人数 1大米 +10 收起 理由
xiaozhuxiaozhu + 10 感谢分享!

查看全部评分

回复

使用道具 举报

DJ963 2016-3-4 09:01:32 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   38
97%
3%
1
double linked list  转回 tree  不需要考虑双向链表的属性,直接当成单向链表来做就可以了~

评分

参与人数 1大米 +10 收起 理由
xiaozhuxiaozhu + 10 感谢分享!

查看全部评分

回复

使用道具 举报

DJ963 2016-3-4 09:09:37 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   38
97%
3%
1
我当时给出了两个方法, 一个已经私信发给你了,另一个方法就是
public void solution(TreeNode root){
  if(root == null){
      return;
}
Stack<TreeNode> stack = new Stack<TreeNode>();
  List<TreeNode> list = new ArrayList<>();
  TreeNode  curr = root;
  while(!stack.isEmpty() || curr != null){
      if(curr != null){
          stack.push(curr);
          curr = curr.left;
      }else{
         curr = stack.pop();
         list.add(curr);
         curr = curr.right;
      }
  }
  for(int i = 0; i < list.size(); i++){
     curr = list.get(i);
     if(i == 0){
         curr.right = list.get(i+1);
     }else if(i == list.size()-1){
        curr.left = list.get(i-1);
     }else{
         curr.right = list.get(i+1);
         curr.left = list.get(i-1);
     }
  }
}


补充内容 (2016-3-4 09:11):
还有一点忘记写了~  就是如果输入的root节点的左右两个子节点都是空的话,也直接return

评分

参与人数 1大米 +3 收起 理由
xiaozhuxiaozhu + 3 感谢分享!

查看全部评分

回复

使用道具 举报

sjph 2016-8-2 08:37:54 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   36
100%
0%
0
Jester_Z 发表于 2016-3-4 06:36
binary tree to double direction linked list 是这个 O(N) 中序走一下就可以了
http://articles.leetcode ...

谢谢层主和大家!但还是对二分查找不是很清楚,层主或者各位大神能否分享一下code,先谢过了!!
回复

使用道具 举报

xsh6528 2017-1-20 05:57:53 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   431
98%
2%
8
DJ963 发表于 2016-3-4 09:01
double linked list  转回 tree  不需要考虑双向链表的属性,直接当成单向链表来做就可以了~

请问,“double linked list  转回 tree”,面试官就没有要求仍然保持是BST了吗?那就层次遍历,一层一层排下去就可以?
回复

使用道具 举报

legendava 2017-12-15 10:44:06 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   35
97%
3%
1
你好,请问第二题convert要求回的是Binary Tree而不是BST是吗? 然后直接当做是一个单向链表变成一颗 balanced binary tree就好了是吗?
回复

使用道具 举报

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

本版积分规则

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