面试的时候,你遇到过哪些算法?

2016-10-24 16:55:01 +08:00
 Nexvar
楼主遇到过的:
LRU
ThreeSum
binarySearch
。。。

你呢?
5583 次点击
所在节点    程序员
41 条回复
66beta
2016-10-25 11:16:12 +08:00
@jccg90 我毫无思绪答不上来,两头拿貌似控制不了啊
alienx717
2016-10-25 11:24:39 +08:00
@MrFireAwayH 哈哈哈厉害
aksoft
2016-10-25 11:35:22 +08:00
这么多算法,实际项目用到的比牛逼用到都少。
chiu
2016-10-25 11:55:23 +08:00
判断大小端
andyfan
2016-10-25 12:33:28 +08:00
@66beta 好奇如果真能实现了的话让两个程序对着玩会怎么样
hanzichi
2016-10-25 13:21:00 +08:00
没遇到过一道 ...
myv2ex
2016-10-25 13:33:17 +08:00
4 种常用基本排序,树前中后序遍历,字符串倒置,斐波那契, 8 皇后,除了基本的排序,大部分已考察你的递归能力。
shimanooo
2016-10-25 13:34:22 +08:00
threesome?
myv2ex
2016-10-25 13:34:57 +08:00
对了还有 AStar ,我做 GEF 图形化的东西,每次必问
hkalexyeung
2016-10-25 18:42:03 +08:00
不要说很难的吧,光是 reverse array 都已经很多人做不来了,面试了好几个都写不出来,现在用 libaray 的人很多,基本功好的真的不多
cncqw
2016-10-25 19:09:27 +08:00
有一次面试遇到一个逗逼 问了我一个猴子吃香蕉的算法
BruceYuan
2016-10-25 20:05:38 +08:00
@hkalexyeung python 和 js 这种不是可以直接调用 reverse 吗?这样不算吗?
hkalexyeung
2016-10-25 21:02:52 +08:00
@BruceYuan 用 library 谁都会啦,那你知道 reverse 用了多少 memory 吗?这个问题看似很简单,但背后一大堆理论在后面。就好像一个最好的厨子,一定要会炒青菜一样。基本功才是解决问题的根本因素之一,去 stackoverflow copy and paste 是高效,但我们做技术的,总会将来面对一些问题是前无古人的,解决最难的问题的人,基本功肯定是好的。

我面试了几个人,连 reverse 都自己写不来。。。:'(
BruceYuan
2016-10-25 21:24:04 +08:00
@hkalexyeung
def convertArray(arr):
n = len(arr)/2
length = len(arr)

for i in range(n):
arr[i], arr[length - i -1] = arr[length - i - 1], arr[i]

return arr

if __name__ == '__main__':
a = convertArray([1,2,3,4,5])
print a
是类似于这样吗?不过一般来说自己实现的东西要比原生的慢好多,比如同样的操作比 arr[::-1]慢了简直不要太多啊。
CodingPuppy
2016-10-25 21:26:59 +08:00
@66beta 挺有意思,是先生成数据,用户看到数据后,可以决定先抽后抽,还是用户先定先后,再生成数据?
hkalexyeung
2016-10-25 21:40:25 +08:00
@BruceYuan arr[i], arr[length - i -1] = arr[length - i - 1], arr[i] <-- 这句语法我喜欢!但你有没有编译之后的机器码呢?有机会看看 :D

现实是 reverse 没人会自己写的 :P 但面试问太难的算法的话,大家都背了答案,所以我这是返璞归真的问题 :P

其实,我还可以问 String.split, regular expression, parseInt...etc 太多大家天天在用的 functions 啦,然后叫候选人写一下,看看基本功好不好 (我承认我变态 :P)
66beta
2016-10-26 09:54:36 +08:00
@CodingPuppy 没有差别吧,因为用户可以从两头取
shiny
2016-10-26 11:55:36 +08:00
面试是考察对方解决问题的能力,而不是难道别人。先问问自己平时遇到的都是些问题?
hkalexyeung
2016-10-26 12:49:10 +08:00
@shiny, 不难道别人,怎样看他解决问题的能力呢?
shiny
2016-10-26 15:45:41 +08:00
@hkalexyeung 想要难倒别人还不容易???

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/315073

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX