由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - G一个新题
相关主题
旧题重提: 扔玻璃杯/扔鸡蛋问题FB面经
最近没有什么新题Insert bounding box
某游戏公司面经Google Onsite 面试
一道面试题求解 -- leetcode原题变种BST的insertion
问一道A家的面试题Google onsite 感受
有人碰到过让interview当场写这个的么?facebook on site后多久给消息啊
弱问:不好意思,这个CODE问题在哪里?考大家个新题 visitor reconstruct generic tree
FB第二轮电面记录what's the difference of back_inserter and inserter in c++
相关话题的讨论汇总
话题: val话题: hash话题: sum话题: value话题: int
进入JobHunting版参与讨论
1 (共1页)
h****n
发帖数: 1093
1
给一个巨大的二维平面 横纵坐标无限 给定一个坐标点写一个add value函数 和求给定
一个四边形范围内的所有value的和 get sum 函数
不能用二维数组存因为是无限的平面 要求add value和get sum尽量高效
j*****l
发帖数: 1624
2
不是新题,2D range sum -- mutable.
用2D Binary indexed tree.
https://www.topcoder.com/community/data-science/data-science-tutorials/
binary-indexed-trees/
https://www.youtube.com/watch?v=CWDQJGaN1gY
https://leetcode.com/problems/range-sum-query-2d-mutable/
https://leetcode.com/discuss/71169/java-2d-binary-indexed-tree-solution-
clean-and-short-17ms
不许用2D数组那就用哈希表,key是坐标,value是值。
当然也有用quadtree的。但quadtree一般是考map的时候考吧。
h****n
发帖数: 1093
3
binary index tree我只知道二维数组的那种写法 怎么用hashmap来写?
面试那么短时间现想真的太难了

【在 j*****l 的大作中提到】
: 不是新题,2D range sum -- mutable.
: 用2D Binary indexed tree.
: https://www.topcoder.com/community/data-science/data-science-tutorials/
: binary-indexed-trees/
: https://www.youtube.com/watch?v=CWDQJGaN1gY
: https://leetcode.com/problems/range-sum-query-2d-mutable/
: https://leetcode.com/discuss/71169/java-2d-binary-indexed-tree-solution-
: clean-and-short-17ms
: 不许用2D数组那就用哈希表,key是坐标,value是值。
: 当然也有用quadtree的。但quadtree一般是考map的时候考吧。

j*****l
发帖数: 1624
4
当然了,如果是有限的比如有个size,我喜欢把点(i,j)存成i*size+j什么的,转换成
整数。
但是如果非要是搞成无穷,那自己想个哈希函数就行了。用上个short url什么的的解
法。
h****n
发帖数: 1093
5
大牛写一个看看 ...
没code不好理解你怎么用hashmap写索引树

【在 j*****l 的大作中提到】
: 当然了,如果是有限的比如有个size,我喜欢把点(i,j)存成i*size+j什么的,转换成
: 整数。
: 但是如果非要是搞成无穷,那自己想个哈希函数就行了。用上个short url什么的的解
: 法。

j*****l
发帖数: 1624
6
你不是说给了坐标点和value?
他非说无穷,你就想,已经给了的坐标点怎么弄成无穷?
所以就记个当前最大值吧。maxRow, maxCol, 总能看成当前的极限吧。要是以后再新给
,咱在扩展就行了吧。
比如说
public void update(int row, int col, int val) {
if (maxRow == 0 || maxCol == 0) return;
hash_val=hash_func(row,col);
int delta = val - nums_hashtable[hash_val];
nums_hashtable[hash_val] = val;
for (int i = row + 1; i <= maxRow; i += i & (-i)) {
for (int j = col + 1; j <=maxCol; j += j & (-j)) {
ij_hash_val=hash_func(i,j);
tree_hashtable[ij_hash_val] += delta;
}
}
}
hash_func太复杂不写了。反正方法有很多种。
h***d
发帖数: 6
7
row = -1, col = -1, 你这code怎么办?

【在 j*****l 的大作中提到】
: 你不是说给了坐标点和value?
: 他非说无穷,你就想,已经给了的坐标点怎么弄成无穷?
: 所以就记个当前最大值吧。maxRow, maxCol, 总能看成当前的极限吧。要是以后再新给
: ,咱在扩展就行了吧。
: 比如说
: public void update(int row, int col, int val) {
: if (maxRow == 0 || maxCol == 0) return;
: hash_val=hash_func(row,col);
: int delta = val - nums_hashtable[hash_val];
: nums_hashtable[hash_val] = val;

l**g
发帖数: 133
8
我和楼主一样有一道类似题目,不过并不是计算给定区间,而是计算sum (0,0) -> (x,
y) 内所有点的value,而且对方没让我写代码,只是一个open ended discussion:
1. insertion > query
2. query > insertion
3. insertion = query
segmented tree现在看到才有点印象,当时一点也没想起来,我第一步就是直接按X排
序,然后按Y排序,然后可以query出来点,进行sum;后来多想了一个按照每个点预计
算总和,但没想到二分或者四分,对方也没有多问下去。。
后来又问了一道关于string的coding,给定string和一个整数m,计算最长的substring
里面包含最多m个字母:比如aabccdd, m=2 => ccdd
还是复习不到位,做题不够啊。。
t**n
发帖数: 272
9
这难道不是kd tree?
E********e
发帖数: 63
10

x,
substring
这个为什么会有insert?
{{1 ,1},
{1, 1}}
sum((0,0) -> (1,1)) = 4
是这个意思么

【在 l**g 的大作中提到】
: 我和楼主一样有一道类似题目,不过并不是计算给定区间,而是计算sum (0,0) -> (x,
: y) 内所有点的value,而且对方没让我写代码,只是一个open ended discussion:
: 1. insertion > query
: 2. query > insertion
: 3. insertion = query
: segmented tree现在看到才有点印象,当时一点也没想起来,我第一步就是直接按X排
: 序,然后按Y排序,然后可以query出来点,进行sum;后来多想了一个按照每个点预计
: 算总和,但没想到二分或者四分,对方也没有多问下去。。
: 后来又问了一道关于string的coding,给定string和一个整数m,计算最长的substring
: 里面包含最多m个字母:比如aabccdd, m=2 => ccdd

l**g
发帖数: 133
11

每个点有一个value (1,1) = 2, (1,2) = 1, (3,3) =2, 那么sum(0,0 -> 2,2) => 3

【在 E********e 的大作中提到】
:
: x,
: substring
: 这个为什么会有insert?
: {{1 ,1},
: {1, 1}}
: sum((0,0) -> (1,1)) = 4
: 是这个意思么

z*********n
发帖数: 1451
12

这题确实应该是kd tree一个典型应用,但是如果自己对如何实现kd tree不熟,不敢乱
说啊,万一让实现一个,搞不出来就挂了。
我以前有个同学就是面试时扯了一下平衡二叉树,然后人家就问你知道哪些平衡二叉树
,他就说了AVL和RBTree,然后对面说,那你随便实现一个我看看吧,然后。。就没有
然后了。。

【在 t**n 的大作中提到】
: 这难道不是kd tree?
c******3
发帖数: 6509
13
有四边形坐标了,直接过滤范围内的数据,然后求和就行了吧
1 (共1页)
进入JobHunting版参与讨论
相关主题
what's the difference of back_inserter and inserter in c++问一道A家的面试题
One interview question (A)有人碰到过让interview当场写这个的么?
不知道该怎么准备了弱问:不好意思,这个CODE问题在哪里?
leetcode 的 Insert Interval 就是过不了大的FB第二轮电面记录
旧题重提: 扔玻璃杯/扔鸡蛋问题FB面经
最近没有什么新题Insert bounding box
某游戏公司面经Google Onsite 面试
一道面试题求解 -- leetcode原题变种BST的insertion
相关话题的讨论汇总
话题: val话题: hash话题: sum话题: value话题: int