2015-08-11 [豌豆荚]--研发--2面
时间:2015-08-14 14:00 ~ 15:00
地点:北京市海淀区西小口路66号东升科技园B-2楼三层
1. 问简历
。。。
2. 算法题:求最小的第K个数
int get_kth_small(int A[], int size, int K) { int B[K + 1]; memcpy(B, A, K * sizeof(int)); std::sort(B, B + K); B[K] = B[K - 1] + 1; for (int i = K; i < size; i++) { for (int j = K - 1; j >= 0; j--) { if (B[j] > A[i]) { B[j + 1] = B[j]; } else { B[j + 1] = A[i]; break; } } } return B[K - 1]; }
3. 算法题:求树的高度。该树是存在数组中的,A[0]=2, 表示第0个节点的上一个节点为2,根节点的上一个节点表示为-1。
例如:
3
0 4
1 2
表示为:
0 | 1 | 2 | 3 | 4 |
3 | 4 | 4 | -1 | 3 |
代码:
// Calculate the B[index] void run_recursively(int A[], int B[], int index) { const int pre_index = A[index]; if (B[index] == -1) { if (pre_index == -1) B[index] = 1; else { run_recursively(A, B, pre_index); B[index] = B[pre_index] + 1; } } } int get_height(int A[], int size) { int ans = 0; int B[size]; for (int i = 0; i < size; i++) B[i] = -1; for (int i = 0; i < size; i++) { if (B[i] == -1) run_recursively(A, B, i); ans = ans > B[i] ? ans : B[i]; } return ans; }
4. 总结
面试官感觉不如1面的年纪大。而且面试官是java方向的后台研发。比较尴尬。面试官问的算法题难度中等。面完问hr,是实习还是校招面试,hr说都有可能。看样子,面试好就直接给校招offer了,其次就是实习offer了,最后就是感谢信了。
作者:loverszhaokai
出处:http://www.cnblogs.com/lovers
本文采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。