2014各大网络公司校招笔试算法题(收集并更新中)

从博客中整理,并不断的更新,供大家学习和交流,随后会给出部分算法题的参考代码。


腾讯

1、请设计一个排队系统,能够让每个进入队伍的用户都能看到自己在 中所处的位置和变化。队伍可能随时有人加入和退出,当有人退出影响到用户的位置排名时需要即时反馈到用户。

2、A、B两个整数集合,设计一个算法求他们的交集,尽可能的高效。

百度

百度2014笔试算法题汇总

科大讯飞

1.求一个整数数组的最大元素,用递归方法实现。

#include <cmath>  
using namespace std;  
  
int maxnum(int a[], int n)  
{  
    if(n == 1)  
        return a[0];  
    if(n>1)  
    {  
        return max(a[0], maxnum(a+1,n-1));  
    }  
}  
int main()  
{  
    int num[10] = {0,1,2,3,4,5,6,7,8,9};  
    cout<<maxnum(num,10)<<endl;  
    return 0;  
}

2.
已知一个整数数组A[n],写出算法实现将奇数元素放在数组的左边,将偶数放在数组的右边。要求时间复杂度为O(n)。

void partition(int A[], int n)  
{  
    int x;  
    int i = 0;  
    int j = n-1;  
    while(i != j)  
    {  
        while( a[i]%2 == 1)  
            i++;  
        while (a[j]%2 == 0)  
            j++;  
        if(i < j)  
        {  
            x = a[i];  
            a[i] = a[j];  
            a[j] = x;  
        }  
    }  
}


金山办公

1.[长沙理工站]给定 一个int型的整数,编程输出其LED显示屏形式。如0为:

 — 

|    |

|    |

|    |

 —

每个数字之间用空格分开。

2.[湖南大学站]有一个函数:

void unique(std::vector<int> &v);

用来给数组去重,试写一段测试代码检查其正确性。

提示1:尽可能找出bug

提示2:你的代码应该返回int型,0表示测试通过,1表示出错。

3.有如下函数原型:

void transferToChinese(int num);(ps:函数名记不太清了,但是无关紧要)

该函数把小于一亿的int型数字转换成中文表示,如:

17:一十七;

110:一百一十;

12345:一万两千三百四十五;

10101:一万零一百零一

提示:注意零的情况。

拓展:考虑缩写情况,如:

17:十七

美团网

美团网2014笔试算法题汇总

去哪儿网

去哪儿网2014笔试算法题汇总

华为

华为2014笔试算法题汇总

暴风影音

暴风影音2014笔试算法题汇总

阿里巴巴

阿里巴巴2014笔试算法题汇总

人人网

人人网2014笔试算法题汇总

创新工场

创新工场2014笔试算法题汇总

优酷

1.N个台阶,1<=N<90,每次一个台阶或两个台阶,求到达台阶N共有多少种方法

2.将long型整数转换成字符串,不能使用库函数

3.含有n个元素的整型数组,将这个n个元素重新组合,求出最小的数,如{321,3,32},最小的数为   321323

4.有一根27厘米的细木杆,在第3厘米、7厘米、11厘米、17厘米、23厘米这五个位置上各有一只蚂蚁。 木杆很细,不能同时通过一只蚂蚁。开始 时,蚂蚁的头朝左还是朝右是任意的,它们只会朝前走或调头, 但不会后退。当任意两只蚂蚁碰头时,两只蚂蚁会同时调头朝反方向走。假设蚂蚁们每秒钟可以走一厘米的距离。 编写程序,求所有蚂蚁都离开木杆 的最小时间和最大时间。

网易

1、f(0)=0;f(1)=1;f(n)=f(n-1)+f(n-2),求f(n)。

2、有主字符串A,子字符串B,在A中查找B

3、写出你熟悉的排序算法,并说明其优缺点











点赞