google intern笔试题

来源:互联网 发布:类似微盘的软件 编辑:程序博客网 时间:2024/05/05 17:16

1. typedef struct {
Node * node;
}Tree;

typedef struct {
Node * left;
Node * right;
}Node;

请写出深拷贝函数:Tree * deepCopy(Tree *tree);

2. 输入一个整型数组,对该数组进行随机排序,写出该函数
void randomShuffle(int *a, int len);
可以使用随机函数发生器
int random(int N); //假设是完全的随机函数,返回值是0 - N-1的整数

3. N个人排成一圈,指定第一个人,去除他,然后跳着一人去除第3人,以次类推,最后
的那一人获胜。给定这N个人和第一个人的位置,你该如何选取位置才会获胜。
让你写最优算法,并计算时间和空间复杂度。不要求写出代码,解释算法即可。

原创粉丝点击