您的位置:首页 > 职场人生

网易杭州研究院实习面试题和答案

2012-08-17 07:27 253 查看
这个实习都是发生在去年的事情了,大概是12月中旬的时候参加的面试。 回想起来一些面试中出现的问题,就分享一下问题和解题思路,希望给准备找工作的同学多一些题目上的帮助吧。

1. 闲聊

2. 语言题:

C++:

有点记不清了,大概有如下题目:

1. 说说静态成员函数,普通成员函数各自的特点。

2. 静态成员函数的访问特性,例如可否访问普通成员数据等

3. inline 和 #define 区别

3. OS

死锁的几个条件

4.写代码题

1. 在一个数组中,其中有一个数字是值的个数,超过了数组大小的一半,问如何能在O(n)的运行时间找到这个数,空间是O(1)

分析: 这里我们可以用一个计数器,就能把这个问题搞定,计数器的原理是说:

首先初始化,记录第一个数的值,并且初始化次数是1, 在扫描的过程中,如果当前值与记录的数不相同,就更新记录数字,并且初始化出现此时是1.

其实这个过程相当于用特定的数字,和其他数字做抵消。并且特定数字的数目大于数组一半,所以最后一定能找到这个数字。

int FindNum(int a[], int size)

{

int val, count;

val = a[0];

count = 1;

for( int i = 1; i < size; i++)

{

if(a[i] != val)

{

count--;

}

else

{

count++;

}

if(count == 0)

{

count = 1;

val = a[i];

}

}

return val;

}

2. 不用递归写出树的中根遍历。

这个问题已经是很经典很经典的面试题了

struct TreeNode

{

int data;

TreeNode* pLeft;

TreeNode* pRight;

};

void InOrder(TreeNode *pRoot)

{

stack<TreeNode*> s;

while(pRoot || !s.empty())

{

if(pRoot)

{

s.push(pRoot);

pRoot = pRoot->pLeft;

}

else

{

pRoot = s.top();

s.pop();

visit(pRoot );

pRoot = pRoot ->pRight;

}

}

}

现在回忆起来还是很简单的,当时因为没有做过任何面试题和复习数据结构,所以面的很水。所以我感觉IT面试还真需要特别的准备,否则容易败的很惨~即使做过再牛逼的东西,面试的时候表现的很水,雇主就会有不雇佣你的理由。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: