由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - G家onsite一题
相关主题
二叉树最长路径 用 level order travel 做?请教一个二叉树镜像问题
一道小题一道二叉树的老题
G/F面经二叉树如何判断一个节点是不是在另外两个节点的path上。。。。好像是个老题了。。求解?
昨天的MS面试微软面试的一道题
求教一道老题判断(二叉)树是否镜像对称
MS面试题算法题:合并两个排序二叉树
一个GOOG的二叉树面试题问一个构建二叉树的问题
二叉树按层次打印有没有办法换行显示?ms面试题求教
相关话题的讨论汇总
话题: node话题: child话题: 二叉树话题: insertx话题: 两个
进入JobHunting版参与讨论
1 (共1页)
f********a
发帖数: 165
1
看到别人的面经:
坐标系第一象限上加射线,接下来所有输入的数据都是不相等的整数,不用考虑任何
edge case。 想要这两个操作:1. insertX(x), insertY(y),比如insertX, 就
是现有的图上面加上x这条射线,象限会被插入的这些射线分成网格,每个格叫一个区
域。 2. find(x,y), 就是给个坐标,返回这个坐标所在的区域。可以返回区域的
id,区域的id自己定。用二叉树。
x,y是两个不同二叉树?Node里面存range?
y******s
发帖数: 92
2
一点不成熟的想法:
1. 用一个类似二叉树的结构,每一个node有四个变量{(x_l, x_r}, {y_b, y_u}),根
部为{(0, infi}, (0, infi)}
2. insert的时候,比如insterX(x),验证current node有没有child,如果有进入child
;没有,在此node分出两个child,一个为{(x_l, x), (y_b, y_u)},另一个为{(x, x_
r), (y_b, y_u)}
3. 查找时候,验证current node有没有child,如果有进入child;没有验证是否x_l <
x < x_r和y_b < y < y_u
t*****3
发帖数: 112
3
x、y两个线段树,insertX(x), insertY(y)分别是对应树的插入操作,给定一个
坐标用find(x,y)找到两个叶子节点对应的区间

【在 f********a 的大作中提到】
: 看到别人的面经:
: 坐标系第一象限上加射线,接下来所有输入的数据都是不相等的整数,不用考虑任何
: edge case。 想要这两个操作:1. insertX(x), insertY(y),比如insertX, 就
: 是现有的图上面加上x这条射线,象限会被插入的这些射线分成网格,每个格叫一个区
: 域。 2. find(x,y), 就是给个坐标,返回这个坐标所在的区域。可以返回区域的
: id,区域的id自己定。用二叉树。
: x,y是两个不同二叉树?Node里面存range?

b******i
发帖数: 914
4
这题你自己也说了,x, y两个不同的二叉树,node里面存range,
其实就是x, y是两个不同的线段树,要实现线段树的插入和查找的操作。
要注意的地方就是id,比如每个线段树可以用一个递增的id,每次插入增加nodes的时
候就分配新的id。最后返回区域的id就是这两个id, idx, idy综合起来的id。比如如果
各自的id都是int,可以返回一个long id = ( (long)idx << 32) | (long)idy;

【在 f********a 的大作中提到】
: 看到别人的面经:
: 坐标系第一象限上加射线,接下来所有输入的数据都是不相等的整数,不用考虑任何
: edge case。 想要这两个操作:1. insertX(x), insertY(y),比如insertX, 就
: 是现有的图上面加上x这条射线,象限会被插入的这些射线分成网格,每个格叫一个区
: 域。 2. find(x,y), 就是给个坐标,返回这个坐标所在的区域。可以返回区域的
: id,区域的id自己定。用二叉树。
: x,y是两个不同二叉树?Node里面存range?

j****1
发帖数: 99
5
Great idea, thanks for sharing!

【在 b******i 的大作中提到】
: 这题你自己也说了,x, y两个不同的二叉树,node里面存range,
: 其实就是x, y是两个不同的线段树,要实现线段树的插入和查找的操作。
: 要注意的地方就是id,比如每个线段树可以用一个递增的id,每次插入增加nodes的时
: 候就分配新的id。最后返回区域的id就是这两个id, idx, idy综合起来的id。比如如果
: 各自的id都是int,可以返回一个long id = ( (long)idx << 32) | (long)idy;

1 (共1页)
进入JobHunting版参与讨论
相关主题
ms面试题求教求教一道老题
问一道二叉树遍历的问题? 谢谢!MS面试题
问个二叉树删除结点的问题一个GOOG的二叉树面试题
求教一道面试题二叉树按层次打印有没有办法换行显示?
二叉树最长路径 用 level order travel 做?请教一个二叉树镜像问题
一道小题一道二叉树的老题
G/F面经二叉树如何判断一个节点是不是在另外两个节点的path上。。。。好像是个老题了。。求解?
昨天的MS面试微软面试的一道题
相关话题的讨论汇总
话题: node话题: child话题: 二叉树话题: insertx话题: 两个