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, 伪善的面试官很喜欢出,貌似很基础,大家都应该会,你答上来也没 : 啥加分,但是不练熟,真的会跪,你跪了事儿就大了,接下来的评价就是基础不扎实, : 基础题都答不好。。。
|
|
|
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". 都是好书。 只要你对算法知道一些,做一个优秀的
码工,这两本书比任何其它书的分量都大。
当然,我不是招人的。 在这里说说也是白说。 |
|
|
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 | |
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立马跪了
|
|
|
s*w 发帖数: 729 | 31 这种题就是考茴香豆的第四种写法
BST 删除的若干种情况,除了那几页书,别的地方再也用不上;脑袋里存了这种极端
case,就转不动了
【在 c********r 的大作中提到】 : BST deletion, 伪善的面试官很喜欢出,貌似很基础,大家都应该会,你答上来也没 : 啥加分,但是不练熟,真的会跪,你跪了事儿就大了,接下来的评价就是基础不扎实, : 基础题都答不好。。。
|
a*********0 发帖数: 2727 | 32 算法这东西主要是靠逻辑吧,真正去背算法步骤的,那都是没掌握要领的
【在 O*******d 的大作中提到】 : 一般考官考的都是他们知道的算法。 一定有很多算法他们也不能立即回答。 我很不明 : 白,为什么这些大公司把算法看得那么重,还要考生不加思索就能回答问题。 实际工 : 作中几乎用不着算法。 就跟微积分一样,你知道,说明你聪明。 但如果你不知道,也 : 不能说明任何问题。 我在大学里学微积分是优等生。但现在,除了知道微积分的基础 : 是极限和连续性之外,其他的东西都要翻书才能回答。 : 从我做码工经历体会到,做码工,最重要的是要懂"code complete"那本书里讲的东西 : 。 还有“writing solid code". 都是好书。 只要你对算法知道一些,做一个优秀的 : 码工,这两本书比任何其它书的分量都大。 : 当然,我不是招人的。 在这里说说也是白说。
|
v***n 发帖数: 562 | |