由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 一道非常伪善的面试题
相关主题
MS面试题分享一道面试题
请教一个BST找Median的题目BST合并的面试题
amazon on-site interview一道MS面试题
判断一个树是不是另一个树的子树?狗onsite 已悲剧
g家面经有人了解并行算法么
G 公司的一个面试题这个Binary Tree的题来看看
请教一个面试题如何判断一个tree是另外一个tree的subtree?
面试题如何求BST的median
相关话题的讨论汇总
话题: 节点话题: bst话题: 算法话题: 变量话题: pivot
进入JobHunting版参与讨论
1 (共1页)
c********r
发帖数: 286
1
BST deletion, 伪善的面试官很喜欢出,貌似很基础,大家都应该会,你答上来也没
啥加分,但是不练熟,真的会跪,你跪了事儿就大了,接下来的评价就是基础不扎实,
基础题都答不好。。。
x*********w
发帖数: 533
2

这题很难,没记过算法的基本会跪

【在 c********r 的大作中提到】
: BST deletion, 伪善的面试官很喜欢出,貌似很基础,大家都应该会,你答上来也没
: 啥加分,但是不练熟,真的会跪,你跪了事儿就大了,接下来的评价就是基础不扎实,
: 基础题都答不好。。。

d**********x
发帖数: 4083
3
难么?只要记住切入点就可以了
1. 从这个节点是叶子节点的最简单情况开始
2. 推及如果这个节点不是叶子节点,且只有一个子树,则直接删掉把子树和父节点一
连就完事
3. 再推及如果这个节点有两个子树,就去找这个节点的中序前驱,如果中序前驱是个
叶子节点,则换一下,删掉完事,如果中序前驱不是叶子节点,则其必然没有右子树,
于是参考2可以解决
关键是逻辑清楚,记两个关键点,剩下的现推都能推出来。背的话,算法这么多怎么背
得过来,25岁以后记忆力都在减退了

【在 x*********w 的大作中提到】
:
: 这题很难,没记过算法的基本会跪

j******2
发帖数: 362
4
这样定义的话,还有好多伪善的题,不说别的,quicksort如果没温过,能写得滴水不
漏吗?这种东西就好像,你没见过牛顿定理,让你现推。。。知道的都觉得奇简单,
不知道的,我要能推出来那不是牛顿了?这些基本的东西,能现场做出来那都是
mission impossible
d**********x
发帖数: 4083
5
quicksort也是一样的
本身sort没什么难的,一个递归。
关键是partition的不变量要记住,或者一旦理解了循环不变量的概念,现场重新构造
不变量也能写出来。
比如说,我现在大概知道partition是需要把pivot放到末尾,然后把所有小于pivot的
变量移动到数组前段。我还知道这里应该大体有俩指针。于是构造两个不变量,m指向
所有比pivot小的元素段的后一个元素, n指向当前正要和pivot比较的元素,于是两者
都可以初始化为0 —— 0是满足这两个条件的,然后当前元素由不变量可知是a[n],和
pivot比较,要保持不变量,如果这个元素比pivot小,则把它和a[m]互换并且m++,因
为a[0...m-1]是我们已经得到的结果,这个不会破坏不变量。如果它比pivot大,则m不
需改变。接下来因为a[n]已经比较完毕,做n++。直到pivot前面的元素比较完毕之后
,结束循环。
这样写出来的程序相当于有严格的数学证明,逻辑上基本不会出错

【在 j******2 的大作中提到】
: 这样定义的话,还有好多伪善的题,不说别的,quicksort如果没温过,能写得滴水不
: 漏吗?这种东西就好像,你没见过牛顿定理,让你现推。。。知道的都觉得奇简单,
: 不知道的,我要能推出来那不是牛顿了?这些基本的东西,能现场做出来那都是
: mission impossible

x*********w
发帖数: 533
6

区别就是quicksort常见,这个不常见,所以很容易挂

【在 j******2 的大作中提到】
: 这样定义的话,还有好多伪善的题,不说别的,quicksort如果没温过,能写得滴水不
: 漏吗?这种东西就好像,你没见过牛顿定理,让你现推。。。知道的都觉得奇简单,
: 不知道的,我要能推出来那不是牛顿了?这些基本的东西,能现场做出来那都是
: mission impossible

f*****e
发帖数: 2992
7
把动画记住就行了。

【在 x*********w 的大作中提到】
:
: 区别就是quicksort常见,这个不常见,所以很容易挂

R**y
发帖数: 72
8
BST deletion? 是指单独删除某个节点么? 如果要删除某个节点及其以该节点为根的
子树,那就直接删掉就可以了。如果删除单独节点,并且要保持原有的BST性质就要调
整节点。
c********r
发帖数: 286
9
动手写写,别看答案先

【在 R**y 的大作中提到】
: BST deletion? 是指单独删除某个节点么? 如果要删除某个节点及其以该节点为根的
: 子树,那就直接删掉就可以了。如果删除单独节点,并且要保持原有的BST性质就要调
: 整节点。

G****A
发帖数: 4160
10
这题从另个角度解决是不是更简单?
1) convert BST to vector of nodes
2)delete the target node
3) convert back to BST

【在 c********r 的大作中提到】
: BST deletion, 伪善的面试官很喜欢出,貌似很基础,大家都应该会,你答上来也没
: 啥加分,但是不练熟,真的会跪,你跪了事儿就大了,接下来的评价就是基础不扎实,
: 基础题都答不好。。。

相关主题
G 公司的一个面试题分享一道面试题
请教一个面试题BST合并的面试题
面试题一道MS面试题
进入JobHunting版参与讨论
c********r
发帖数: 286
11
呵呵,只要面试官同意,看他们想考察什么啦

【在 G****A 的大作中提到】
: 这题从另个角度解决是不是更简单?
: 1) convert BST to vector of nodes
: 2)delete the target node
: 3) convert back to BST

h*****9
发帖数: 6643
12
这种算法面试题,只能去考那些刚毕业的。 码工很多年的,没几个真用过这类算法,
就算用过,只要两年内没用,早就忘了。

【在 c********r 的大作中提到】
: BST deletion, 伪善的面试官很喜欢出,貌似很基础,大家都应该会,你答上来也没
: 啥加分,但是不练熟,真的会跪,你跪了事儿就大了,接下来的评价就是基础不扎实,
: 基础题都答不好。。。

c********r
发帖数: 286
13
问题是那几家牛公司,不论有无经验的都考算法

【在 h*****9 的大作中提到】
: 这种算法面试题,只能去考那些刚毕业的。 码工很多年的,没几个真用过这类算法,
: 就算用过,只要两年内没用,早就忘了。

N*D
发帖数: 3641
14
也就狗狗这样吧?其他公司还是比较靠谱的。

【在 c********r 的大作中提到】
: 问题是那几家牛公司,不论有无经验的都考算法
c*****a
发帖数: 808
15
除了quick sort/merge sort,其他神马bubble,selection立马跪了
d**********x
发帖数: 4083
16
像selection,insertion,也一样是保持循环不变量。

【在 c*****a 的大作中提到】
: 除了quick sort/merge sort,其他神马bubble,selection立马跪了
t*********h
发帖数: 941
17
这个角度不错

【在 G****A 的大作中提到】
: 这题从另个角度解决是不是更简单?
: 1) convert BST to vector of nodes
: 2)delete the target node
: 3) convert back to BST

J*****a
发帖数: 4262
18
bubble\selection比quick和merge简单多了。。。

【在 c*****a 的大作中提到】
: 除了quick sort/merge sort,其他神马bubble,selection立马跪了
O*******d
发帖数: 20343
19
这是考刚毕业的。 过了30岁的人,基本上不会有人可以在事前不知道的情况下,立即
写出来。 你现在去参加高考,考得过当年的高中生吗? 工作中用算法的地方很少。
即使要用,也有现成的库让你调用。 如果必须要自己写,也是要读参考书。 当然,很
多考官不这样想。

【在 c********r 的大作中提到】
: BST deletion, 伪善的面试官很喜欢出,貌似很基础,大家都应该会,你答上来也没
: 啥加分,但是不练熟,真的会跪,你跪了事儿就大了,接下来的评价就是基础不扎实,
: 基础题都答不好。。。

O*******d
发帖数: 20343
20
一般考官考的都是他们知道的算法。 一定有很多算法他们也不能立即回答。 我很不明
白,为什么这些大公司把算法看得那么重,还要考生不加思索就能回答问题。 实际工
作中几乎用不着算法。 就跟微积分一样,你知道,说明你聪明。 但如果你不知道,也
不能说明任何问题。 我在大学里学微积分是优等生。但现在,除了知道微积分的基础
是极限和连续性之外,其他的东西都要翻书才能回答。
从我做码工经历体会到,做码工,最重要的是要懂"code complete"那本书里讲的东西
。 还有“writing solid code". 都是好书。 只要你对算法知道一些,做一个优秀的
码工,这两本书比任何其它书的分量都大。
当然,我不是招人的。 在这里说说也是白说。
相关主题
狗onsite 已悲剧如何判断一个tree是另外一个tree的subtree?
有人了解并行算法么如何求BST的median
这个Binary Tree的题来看看微软面试的一道题
进入JobHunting版参与讨论
O*******d
发帖数: 20343
21
平时设计软件时,loose coupling和tight coupling的概念经常要用到。 我从来没有
被人问到过这个问题。还有,exception safety也是一个重要的需要考虑的东西,也是
从来没有人问过。
j********x
发帖数: 2330
22
去年面startup,被一个刚毕业的小本问这题,直接跪了

【在 c********r 的大作中提到】
: BST deletion, 伪善的面试官很喜欢出,貌似很基础,大家都应该会,你答上来也没
: 啥加分,但是不练熟,真的会跪,你跪了事儿就大了,接下来的评价就是基础不扎实,
: 基础题都答不好。。。

J*******o
发帖数: 741
23

马一下这两本书, 当然还是得先过了面试再说

【在 O*******d 的大作中提到】
: 一般考官考的都是他们知道的算法。 一定有很多算法他们也不能立即回答。 我很不明
: 白,为什么这些大公司把算法看得那么重,还要考生不加思索就能回答问题。 实际工
: 作中几乎用不着算法。 就跟微积分一样,你知道,说明你聪明。 但如果你不知道,也
: 不能说明任何问题。 我在大学里学微积分是优等生。但现在,除了知道微积分的基础
: 是极限和连续性之外,其他的东西都要翻书才能回答。
: 从我做码工经历体会到,做码工,最重要的是要懂"code complete"那本书里讲的东西
: 。 还有“writing solid code". 都是好书。 只要你对算法知道一些,做一个优秀的
: 码工,这两本书比任何其它书的分量都大。
: 当然,我不是招人的。 在这里说说也是白说。

z*******3
发帖数: 13709
24
这个startup不行啊
我记得混startup的公孙大神说过
上来就是code challenging
给你24小时,24小时之内完成一个prototype
否则滚蛋,搞出来就基本上可以给offer了
如果是这样的话,我觉得蛮好

【在 j********x 的大作中提到】
: 去年面startup,被一个刚毕业的小本问这题,直接跪了
z*******3
发帖数: 13709
25
应该有人问过你design pattern的问题吧?
如果有经验的话,这个就是coupling相关的了

【在 O*******d 的大作中提到】
: 平时设计软件时,loose coupling和tight coupling的概念经常要用到。 我从来没有
: 被人问到过这个问题。还有,exception safety也是一个重要的需要考虑的东西,也是
: 从来没有人问过。

j********x
发帖数: 2330
26
小startup的特点是直接,不玩虚的,所以有各种奇葩都不奇怪

【在 z*******3 的大作中提到】
: 这个startup不行啊
: 我记得混startup的公孙大神说过
: 上来就是code challenging
: 给你24小时,24小时之内完成一个prototype
: 否则滚蛋,搞出来就基本上可以给offer了
: 如果是这样的话,我觉得蛮好

k**********2
发帖数: 70
27
无解的题吧,看考官的自己感觉了
k*******2
发帖数: 84
28
觉得好多题都是这样,貌似很基础,但是没做过的话真心不容易一下子给出neat的bug
free代码,很容易给人基础不牢的感觉。。我觉得包括reverse linked list, inorder
遍历的循环解法都是这类。。看来还是我太弱了。。不知道要做多少题才能质变啊。。
Y********f
发帖数: 410
29
这个逻辑很简单,写起来还是比较麻烦的

【在 d**********x 的大作中提到】
: 难么?只要记住切入点就可以了
: 1. 从这个节点是叶子节点的最简单情况开始
: 2. 推及如果这个节点不是叶子节点,且只有一个子树,则直接删掉把子树和父节点一
: 连就完事
: 3. 再推及如果这个节点有两个子树,就去找这个节点的中序前驱,如果中序前驱是个
: 叶子节点,则换一下,删掉完事,如果中序前驱不是叶子节点,则其必然没有右子树,
: 于是参考2可以解决
: 关键是逻辑清楚,记两个关键点,剩下的现推都能推出来。背的话,算法这么多怎么背
: 得过来,25岁以后记忆力都在减退了

x****o
发帖数: 29677
30

selection和insertion还能写,最基本的double loop,换成这些立马跪了

【在 c*****a 的大作中提到】
: 除了quick sort/merge sort,其他神马bubble,selection立马跪了
相关主题
heap里面delete一个非root的节点请教一个BST找Median的题目
find the median of an infinite data stream of integersamazon on-site interview
MS面试题判断一个树是不是另一个树的子树?
进入JobHunting版参与讨论
s*w
发帖数: 729
31
这种题就是考茴香豆的第四种写法
BST 删除的若干种情况,除了那几页书,别的地方再也用不上;脑袋里存了这种极端
case,就转不动了

【在 c********r 的大作中提到】
: BST deletion, 伪善的面试官很喜欢出,貌似很基础,大家都应该会,你答上来也没
: 啥加分,但是不练熟,真的会跪,你跪了事儿就大了,接下来的评价就是基础不扎实,
: 基础题都答不好。。。

a*********0
发帖数: 2727
32
算法这东西主要是靠逻辑吧,真正去背算法步骤的,那都是没掌握要领的

【在 O*******d 的大作中提到】
: 一般考官考的都是他们知道的算法。 一定有很多算法他们也不能立即回答。 我很不明
: 白,为什么这些大公司把算法看得那么重,还要考生不加思索就能回答问题。 实际工
: 作中几乎用不着算法。 就跟微积分一样,你知道,说明你聪明。 但如果你不知道,也
: 不能说明任何问题。 我在大学里学微积分是优等生。但现在,除了知道微积分的基础
: 是极限和连续性之外,其他的东西都要翻书才能回答。
: 从我做码工经历体会到,做码工,最重要的是要懂"code complete"那本书里讲的东西
: 。 还有“writing solid code". 都是好书。 只要你对算法知道一些,做一个优秀的
: 码工,这两本书比任何其它书的分量都大。
: 当然,我不是招人的。 在这里说说也是白说。

v***n
发帖数: 562
33
mark
1 (共1页)
进入JobHunting版参与讨论
相关主题
如何求BST的mediang家面经
微软面试的一道题G 公司的一个面试题
heap里面delete一个非root的节点请教一个面试题
find the median of an infinite data stream of integers面试题
MS面试题分享一道面试题
请教一个BST找Median的题目BST合并的面试题
amazon on-site interview一道MS面试题
判断一个树是不是另一个树的子树?狗onsite 已悲剧
相关话题的讨论汇总
话题: 节点话题: bst话题: 算法话题: 变量话题: pivot