一面跪,有很多不足的,记录一下。
10:30面试, 晚了一分钟到, 非常不应该,导航错了地图也是醉了,面试一定要提前15分钟到。
面试官很和蔼。
1. 写一个开根函数,要求误差小于m。 (实现 pow(x, n) , n为小数,1/n 为整数。)
目前的想法,二分+快速幂
或者泰勒展开。
推荐二分+快速幂,容易实现误差<m
2. 给一个树,每个节点有一个权值,求从根往下权值最大的路径,尽量用非递归。
递归很简单,记录并维护每个节点下路径最大值。
非递归其实也很简单,但是我当时傻逼的往实现树的后序遍历方面去考虑了,其实不需要这么复杂。
遍历所有节点,每个节点记录从改节点往上到根的路径,已经记录过了点就直接用,这样只需要知道父节点即可,复杂度o(n),而且很好写。
3. 有一个长度为10T的串s,求子串t出现的次数?
因为s非常长所以肯定是内存是存不下的,但是也可以使用内存移动+kmp来实现。
最近可以学习下比KMP更快的BM和sunday算法。
4. shell命令,有一个文件,该文件每行包含两个字段
比如:
1 chen
2 le
1 chen
1 le
3 ss
写出命令求(x y)出现的次数
cat file | sort | uniq -c
这题没答出来,导致后面全程被鄙视。
5. VIM操作,注释多行代码
ctrl + v 选择要注释代码块的第一列 shift + i 输入// esc
6.STL, BOOST库, STL中的内存管理。
基本上就是作死状态。
GG