笔试:
一、程序设计
1.求数的“相反数”,例如:命令行输入1234,首先反转得到4321,然后用1234+4321=5555。5555就是1234的相反数。
2.数组排序,要求时间复杂度为O(n),空间复杂度为O(1)。100以内的数
3.求完全数和盈数:完全数:例如6的因子有123(6本身不算因子),6=1+2+3.因此6是完全数。如果因子之和大于它本身,那么该数为盈数。求2-60的所有盈数和完全数。
二、数据结构
1.书Book结构体,有ABC三种书名,书名用0、1、2分别表示。现在有一个存储书(乱序排列)的顺序表。要求按012的顺序排列这些书。
2.用两个栈S1,S2实现队列的入队和出队。
思路:S1的入栈相当于队列入队,队列出队要注意。首先判断S2中是否为空,如果为空,先将S1中的所有元素转移到S2中,这样可以避免每次都进行一次转移。然后再从S2出栈,这样的顺序就是队列入队和出队顺序。可以画图表示
class Solution
{
public:
void push(int node) {
stack1.push(node);
}
int cur = 0;
if (stack2.empty()) {
while (!stack1.empty()) {
int temp = stack1.top();
stack1.pop();
stack2.push(temp);
}
cur = stack2.top();
stack2.pop();
} else {
cur = stack2.top();
stack2.pop();
}
return cur;
}
private:
stack<int> stack1;
stack<int> stack2;
};
3.现有一个无向图,用深度优先遍历判断这个图是否为连通图。
三、计算机网络
1.求三个协议下的信道利用率。
2.有一个总部,三个分部。总部主机数55,A分部..B分部..C分部..。求IP地址范围和子网掩码。
面试:
1.英语问答:
描述做过的项目,该项目的目的,要解决什么问题,你在这个项目中扮演什么角色?
你认为计算机领域近五年来最重要的发展是什么?
2.中文问答:
做过的项目具体?
动手能力?编程?建模?
你认为我们为什么要录取你?你的优势?关于科研方面的?
别人被问的问题:
以后想研究什么方向?为什么?