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了,最后就是感谢信了。

posted @ 2015-08-14 21:39 loverszhaokai 阅读(...) 评论(...) 编辑 收藏