文档库 最新最全的文档下载
当前位置:文档库 › 阿里巴巴笔试题选解

阿里巴巴笔试题选解

阿里巴巴笔试题选解
阿里巴巴笔试题选解

阿里巴巴笔试题选解

--9月22日,阿里巴巴北邮站

小题:

1、有三个结点,可以构成多少种二叉树形结构?

2、一副牌52张(去掉大小王),从中抽取两张牌,一红一黑的概率是多少?

编程题:

3、设计一个最优算法来查找一n个元素数组中的最大值和最小值。已知一种需要比较2n次的方法,请给一个更优的算法。情特别注意优化时间复杂度的常数。

4、已知三个升序整数数组a[l], b[m]和c[n]。请在三个数组中各找一个元素,是的组成的三元组距离最小。三元组的距离定义是:假设a[i]、b[j]和c[k]是一个三元组,那么距离为:

Distance = max(|a[ I ] – b[ j ]|, |a[ I ] – c[ k ]|, |b[ j ] – c[ k ]|)

请设计一个求最小三元组距离的最优算法,并分析时间复杂度。

5、在黑板上写下50个数字:1至50.在接下来的49轮操作中,每次做如下动作:选取两个黑板上的数字a和b,擦去,在黑板上写|b - a|。请问最后一次动作之后剩下数字可能是什么?为什么?

题解:(题解非官方,仅供参考,有错误的地方望指正!谢谢)

1、有三个结点的,可以构成多少个种二叉树形结构?

解:应该是5种;

2、一副牌52张(去掉大小王),从中抽取两张牌,一红一黑的概率是多少?

考察概率论知识

解法一:52张牌从中抽两张,就是 C(2,52)种情况,一红一黑是C(1,26) * C(1,26)种

P = [C(1,26) * C(1,26) ] / C(2,52) = 26 * 26 / (26 * 51) = 26/51解法二:全为黑或者全为红是C(2,26)种情况,由于是黑和红两种,所以要乘以2

P = 1 - C(2,26) / C(2,52) - C(2,26) / C(2,52) = 1 - 2 * (26 * 25)/(51 * 52) = 1 - 25/51 = 26/51

3、设计一个最优算法来查找一n个元素数组中的最大值和最小值。已知一种需要比较2n次的方法,请给一个更优的算法。情特别注意优化时间复杂度的常数。

解:把数组两两一对分组,如果数组元素个数为奇数,就最后单独分一个,然后分别对每一组的两个数比较,把小的放在左边,大的放在右边,这样遍历下来,总共比较的次数是N/2次;在前面分组的基础上,那么可以得到结论,最小值一定在每一组的左边部分找,最大值一定在数组的右边部分找,最大值和最小值的查找分别需要比较N/2次和N/2次;这样就可以找到最大值和最小值了,比较的次数为

N/2 * 3 = (3N)/2 次

如图会更加清晰:

代码实现:

[cpp]view plaincopy

1.#include

2.#include

3.#define N 7

4.int main()

5.{

6.int arr[N] = {4, 1, 5, 9, 9, 7, 10};

7.int iter = 0;

8.int cnt = 0;

9.for(iter = 0; iter < N ; iter += 2)

10. {

11.if(++cnt && arr[iter] > arr[iter + 1] )

12. {

13.int temp = arr[iter];

14. arr[iter] = arr[iter + 1];

15. arr[iter + 1] = temp;

16. }

17. }

18.int myMin = arr[0];

19.for(iter = 2; iter < N ; iter += 2)

20. {

21.if(++cnt && arr[iter] < myMin)

22. {

23. myMin = arr[iter];

24. }

25. }

26.int myMax = arr[1];

27.for(iter = 3; iter < N; iter += 2)

28. {

29.if(++cnt && arr[iter] > myMax)

30. {

31. myMax = arr[iter];

32. }

33. }

34.if(N % 2 != 0 && ++cnt && myMax < arr[N - 1]) myMax = arr[N - 1];

35. printf("min is %d\n", myMin);

36. printf("max is %d\n", myMax);

37. printf("compare times is %d", cnt);

38.return 0;

39.}

上面的算法比较次数基本上已经是最优了,但是有朋友提出这样的顾虑,在极端的情况下,每次都做交换,可能会导致程序开销很大,这样的顾虑是对的,其实在上面的算法的基础上,可以不做交换就能找到最大值和最小值。

第3题改进的算法:

依旧把数组两两一组分配,不做交换操作,设置一个最大值Max和最小值Min,依次和每一组的两个数据做比较,把较大的值给Max,较小的值给Min,遍历一次就能找到数组的最大值和最小值。

示例:数组为{(4, 1) , (5, 9) , (9 ,7) ,(10,2)},经过第一组比较得到Max = 4,Min = 1,其中比较了3次;,经过第二组比较得到Max = 9,Min = 1,其中比较了3次;……到最后Max = 10,Min = 1;比较次数是3 * N/2 = (3N)/2,比较次数没有改变!代码实现不难,就不贴了

4、已知三个升序整数数组a[l], b[m]和c[n]。请在三个数组中各找一个元素,是的组成的三元组距离最小。三元组的距离定义是:假设a[i]、b[j]和c[k]是一个三元组,那么距离为:

Distance = max(|a[ I ] – b[ j ]|, |a[ I ] – c[ k ]|, |b[ j ] – c[ k ]|)

请设计一个求最小三元组距离的最优算法,并分析时间复杂度。

解:这道题目有两个关键点:

第一个关键点: max{|x1-x2|,|y1-y2|} =

(|x1+y1-x2-y2|+|x1-y1-(x2-y2)|)/2 --公式(1)

我们假设x1=a[ i ],x2=b[ j ],x3=c[ k ],则

Distance = max(|x1– x2|, |x1– x3|, |x2– x3|) = max( max(|x1–

x2|, |x1– x3|) , |x2– x3|) --公式(2)

根据公式(1),max(|x1– x2|, |x1– x3|) = 1/2 ( |2x1– x2– x3|

+ |x2– x3|),带入公式(2),得到

Distance = max( 1/2 ( |2x1– x2– x3| + |x2– x3|) , |x2– x3| )

=1/2 * max( |2x1– x2– x3| , |x2– x3| ) + 1/2*|x2– x3| //把相同部分1/2*|x2– x3|分离出来

=1/2 * max( |2x1– (x2 + x3)| , |x2– x3| ) + 1/2*|x2–

x3| //把(x2 + x3)看成一个整体,使用公式(1)

=1/2 * 1/2 *((|2x1– 2x2| + |2x1– 2x3|) + 1/2*|x2– x3|

=1/2 *|x1– x2| + 1/2 * |x1– x3| + 1/2*|x2– x3|

=1/2 *(|x1– x2| + |x1– x3| + |x2– x3|) //求出来了等价公式,完毕!

第二个关键点:如何找到(|x1– x2| + |x1– x3| + |x2– x3|) 的最小值,x1,x2,x3,分别是三个数组中的任意一个数,这一题,我只是做到了上面的推导,后面的算法设计是由csdn上的两个朋友想出来的方法,他们的CSDN的ID分别为“云梦泽”和“shuyechengying”.

算法思想是:

用三个指针分别指向a,b,c中最小的数,计算一次他们最大距离的Distance ,然后在移动三个数中较小的数组指针,再计算一次,每次移动一个,直到其中一个数组结束为止,最慢(l+ m + n)次,复杂度为O(l+ m + n)代码如下:

[cpp]view plaincopy

1.#include

2.#include

3.#include

4.#define l 3

5.#define m 4

6.#define n 6

7.int Mymin(int a, int b, int c)

8.{

9.int Min = a < b ? a : b;

10. Min = Min < c ? Min : c;

11.return Min;

12.}

13.

14.int Solvingviolence(int a[], int b[], int c[])

15.{

16.//暴力解法,大家都会,不用过多介绍了!

17.int i = 0, j = 0, k = 0;

18.int MinSum = (abs(a[i] - b[j]) + abs(a[i] - c[k]) + abs(b[j] - c[k])) /

2;

19.// int store[3] = {0};

20.int Sum = 0;

21.for(i = 0; i < l; i++)

22. {

23.for(j = 0; j < m; j++)

24. {

25.for(k = 0; k < n; k++)

26. {

27. Sum = (abs(a[i] - b[j]) + abs(a[i] - c[k]) + abs(b[j] - c[k]

)) / 2;

28.if(MinSum > Sum)

29. {

30. MinSum = Sum;

31.// store[0] = i;

32.// store[1] = j;

33.// store[2] = k;

34. }

35. }

36. }

37. }

38.// printf("the min is %d\n", minABC);

39.// printf("the three number is %-3d%-3d%-3d\n", a[store[0]], b[store[1]],

c[store[2]]);

40.return MinSum;

41.

42.}

43.

44.int MinDistance(int a[], int b[], int c[])

45.{

46.int MinSum = 0; //最小的绝对值和

47.int Sum = 0; //计算三个绝对值的和,与最小值做比较

48.int MinOFabc = 0; // a[i] , b[j] ,c[k]的最小值

49.int cnt = 0; //循环次数统计,最多是l + m + n次

50.int i = 0, j = 0, k = 0; //a,b,c三个数组的下标索引

51. MinSum = (abs(a[i] - b[j]) + abs(a[i] - c[k]) + abs(b[j] - c[k])) / 2;

52.for(cnt = 0; cnt <= l + m + n; cnt++)

53. {

54. Sum = (abs(a[i] - b[j]) + abs(a[i] - c[k]) + abs(b[j] - c[k])) / 2;

55. MinSum = MinSum < Sum ? MinSum : Sum;

56. MinOFabc = Mymin(a[i] ,b[j] ,c[k]);//找到a[i] ,b[j] ,c[k]的最小值

57.//判断哪个是最小值,做相应的索引移动

58.if(MinOFabc == a[i])

59. {

60.if(++i >= l) break;

61. }//a[i]最小,移动i

62.

63.if(MinOFabc == b[j])

64. {

65.if(++j >= m) break;

66. }//b[j]最小,移动j

67.if(MinOFabc == c[k])

68. {

69.if(++k >= n) break;

70. }//c[k]最小,移动k

71.

72. }

73.return MinSum;

74.}

75.int main(void)

76.{

77.int a[l] = {5, 6, 7};

78.int b[m] = {13, 14, 15, 17};

79.int c[n] = {19, 22, 24, 29, 32, 42};

80.

81. printf("\nBy violent solution ,the min is %d\n", Solvingviolence(a, b, c

));

82. printf("\nBy Optimal solution ,the min is %d\n", MinDistance(a, b, c));

83.return 0;

84.}

5、这几天有点事,第5题还没仔细研究,要是解出来会第一时间更新博客!有求解方法的朋友欢迎评论!

题目部分摘取自july CSDN网站:https://www.wendangku.net/doc/f410168393.html,/v_july_v/article/details/11921021

注:1.本文版权归作者和CSDN所有,未经作者允许不得转载,侵权必究!

2.本博客与博客园上的博客为同一博客主:https://www.wendangku.net/doc/f410168393.html,/bestDavid/

1、有一个虚拟存储系统,若进程在内存中占3页(开始时内存为空),若采用先进先出(FIFO)页面淘汰算法,当执行如下访问页号序列后1,2,3,4,5,1,2,5,1,2,3,4,5,会发生多少缺页?

A、7

B、8

C、9

D、10

2、设有一个顺序栈S,元素s1、s2、s

3、s

4、s

5、s6依次进栈,如果6个元素的出栈顺序为s2、s3、s4、s

6、s5、s1,则顺序栈的容量至少应为多少?

A、2

B、3

C、4

D、5

3、下列关于文件索引结构的叙述中,哪一个是错误的?

A、采用索引结构,逻辑上连续的文件存放在连续的物理块中

B、系统为每个文件建立一张索引表

C、索引结构的优点是访问速度快,文件长度可以动态变化

D、索引结构的缺点是存储开销大

4、【0、2、1、4、3、9、

5、8、

6、7】是以数组形式存储的最小堆,删除堆顶元素0后的结果是()

A、【2、1、4、3、9、5、8、6、7】

B、【1、2、5、4、3、9、8、6、7】

C、【2、3、1、4、7、9、5、8、6】

D、【1、2、5、4、3、9、7、8、6】

5、某页式存储管理系统中,地址寄存器长度为24位,其中页号占14位,则主存的分块大小是()字节。

A、10

B、2^10

C、2^14

D、2^24

6、在一个长为33厘米的光滑凹轨上,在第3厘米、第6厘米、第19厘米、第22厘米、第26厘米处各有一个钢珠,凹轨很细,不能同时通过两个钢珠,开始时,钢珠运动方向是任意的。两个钢珠相撞后,以相同速度反向运动。假设所有钢珠初始速度为每秒运动1厘米,那么所有钢珠离开凹轨的最长可能时间是()

A、30

B、26

C、38

D、33

7、std::vector::iterator重载了下面哪些运算符?

A、++

B、>>

C、*(前置)

D、==

8、下列运算符,在C++语言中不能重载的是()

A、*

B、?:

C、::

D、delete

9、在排序方法中,元素比较次数与元素的初始排列无关的是()

A、Shell 排序

B、归并排序

C、直接插入排序

D、选择排序

10、给定如下代码:int x[4]={0}; int y[4]={1}; 数组x和y的值为()

A、{0,0,0,0},{1,1,1,1}

B、{0,0,0,0},{1,0,0,0}

C、{0,不确定},{1,不确定}

D、与编译器相关

10、给出以下定义,下列哪些操作是合法的?

const char *p1 = "hello";

char* const p2 = "world";

A、p1++

B、p1[2]='w';

C、

p2[2]='l'; D、p2++

11、假设在n进制下,下面的等式成立,n值是()567*456=150216

A、9

B、10

C、12

D、18

12、关于struct和class,下列说法正确的是()

A、struct的成员默认是public,class的成员默认是private

B、struct不能继承,class可以继承

C、struct可以有无参构造函数

D、struct的成员变量只能是public

13、定义一个函数指针,指向的函数有两个int形参并且返回一个函数指针,返回的指针指向一个有一个int形参且返回int的函数?

A、int (*(*F)(int, int))(int)

B、int (*F)(int, int)

C、int (*(*F)(int, int))

D、*(*F)(int, int)(int)

14、声明一个指向含有10个元素的数组的指针,其中每个元素是一个函数指针,该函数的返回值是int,参数是int*,正确的是()

A、(int *p[10])(int*);

B、int [10]*p(int *);

C、int (*(*p)[10])(int *);

D、int ((int *)[10])*p;

E、以上选项都不正确

15、一个栈的输入序列为123.....n,若输出序列的第一个元素是n,输出第i(1<=i<=n)

个元素是()

A、不确定

B、n-i+1

C、i

D、n-i

16、下列代码编译时会产生错误的是()

1.#include

https://www.wendangku.net/doc/f410168393.html,ing namespace std;

3.struct Foo

4.{

5.Foo() { }

6.Foo(int) { }

7.void fun() { }

8.};

9.int main(void)

10.{

11.Foo a(10); //语句1

12. a.fun(); //语句2

13.Foo b(); //语句3

14. b.fun(); //语句4

15.return 0;

16.}

A、语句1

B、语句2

C、语句3

D、语句4

17、在32位机器上,下列代码中

1.#pragma pack(2)

2.class A

3.{

4.int i;

5.union U

6.{

7.char buff[13];

8.int i;

9.}u;

10.void foo() { }

11.typedef char* (*f)(void*);

12.enum{red, green, blue} color;

13.}a;

sizeof(a)的值是()

A、20

B、21

C、22

D、24

E、非以上选项

18、下面描述中,错误的是()

A、基类定义的public成员在公有继承的派生类中可见,也能在类外被访问

B、基类定义的public和protected成员在私有继承的派生类中可见,在类外可以被访问

C、基类定义的public和protected成员在保护继承的派生类中不可见

D、基类定义的protected成员在protected继承的派生类中可见,也能在类外被访问

19、当很频繁地对序列中部进行插入和删除操作时,应该选择使用的容器是()

A、vector

B、list

C、deque

D、stack

20、判断一个单向链表中是否存在环的最佳方法是()

A、两重遍历

B、快慢指针

C、路径记录

D、哈希表辅助

21、给你1、2、3 这三个数字可以使用C的各种运算符你能表示的最大的整数是()

A、2*3*sizeof(1)

B、3<<(2<

C、

sizeof(3)<<(sizeof(2)<<(sizeof(1))) D、(unsigned long)(2-3)*1

22、下面代码的输出是多少?

1.class A

2.{

3.public:

4.A() { cout<<"A"<

5.~A() { cout<<"~A"<

6.};

7.

8.class B:public A

9.{

10.public:

11.B(A &a):_a(a)

12.{

13.cout<<"B"<

14.}

15.~B()

16.{

17.cout<<"~B"<

18.}

19.private:

20. A _a;

21.};

22.

23.int main(void)

24.{

25. A a;

26. B b(a);

27.return 0;

28.}

23、一个骰子,6面,1个面是1,2个面是2,3个面是3,问平均掷多少次能使1、

2、3都至少出现一次!

24、问题描述:

12个高矮不同的人,排成两排,每排必须是从矮到高排列,而且第二排比对应的第一排的人高,问排列方式有多少种?

参考答案(欢迎讨论)转载请注明来源https://www.wendangku.net/doc/f410168393.html,/jerry19880126/

1.D。刚开始没有页的时候,也算缺页。

2.B。

3.A。文件不一定在内存中连续存储。

4.D。堆排序,删堆顶元素是用最后一个元素替换的,然后再比较堆顶元素和他的左

右孩子,交换,如此递推下去。

5.B。

6.A。看上去很烦,但可以换一种思维,A向右,B向左,碰后,A向左,B向右óA

向右,B向左,碰后,交换两球身份,A继续向右,B继续向左。这样好像就没有相碰一样,最长时间是由距左侧3厘米的球产生。

7.ACD。

8.BC。共有四个不能重载的,带“点”的都不能重载。

9.D。虽然网友给的答案是B,但我坚持认为是D。

10.B。未显示初始化的元素自动为0,但前提是有元素显示初始化了,否则都是垃圾值。

A。C是不可发的,因为字符串常量不可以修改。

11. D。看最后一位数7*6=42 然后分别假设余9、12、18,看结果对不对,比如

42%9=6,A是可以的,第一次都可以,再试右边倒数第二个数就能看出结果了。

12. A。

13. A。语法基础,看书。

14. C。语法基础,看书。

15. B。

16. D。语句3就已经不对了,应该没有后面的括号的,但编译器会认为这是函数的声

明,所以3本身不报错,4基于3的认识上出错。

17. C。字节对齐问题。Union是取最大的字节数,取13字节,因为pack(2),以2

字节对齐,必须是2的倍数,所以对齐后是14。函数以及类型重定义不占字节,外层

的struct的字节是4+14+(3+1),这里enum要是2的倍数,所以+1对齐,结果

是22字节。

18. BCD。

19. B。vector和deque都是动态数组实现方式,但deque比vector更适合在头部

插入和删除操作。Stack显然不适合中部插删。

20. B。快慢指针是指:一个一次步进两级的快指针和一个一次只步进一级的慢指针。当快指针第二次碰到慢指针时,说明链表是循环的,算法复杂度为 O(n),CD都还需要额外的空间存储代价。

21. D。C是2^4 * 2^4 *4,显然小于D的2^32-1。

22. AAB~B~A~A~A。注意A虽然没有成员对象,但还是要析构的。

23. 不会。下面给出网友的答案:

平均的话是679/75次

1/6*(1+6/5*(2/5*(1+6/3)+3/5*(1+6/2)))

+2/6*(1+6/4*(1/4*(1+6/3)+3/4*(1+6/1)))

+3/6*(1+6/3*(1/3*(1+6/2)+2/3*(1+6/1)))=679/75

PS:事件A发生的概率为p(0

A第一次发生平均需要的次数为

1/p=p*(1+(1-p)*2+(1-p)^2*3+(1-p)^3*4+...)

24. 也不会。下面给出网友的答案:

问题分析:

我们先把这12个人从低到高排列,然后,选择6个人排在第一排,那么剩

下的6个肯定是在第二排.

用0表示对应的人在第一排,用1表示对应的人在第二排,那么含有6

个0,6个1的序列,就对应一种方案.

比如000000111111就对应着

第一排:0 1 2 3 4 5

第二排:6 7 8 9 10 11

010*********就对应着

第一排:0 2 4 6 8 10

第二排:1 3 5 7 9 11

问题转换为,这样的满足条件的01序列有多少个.

观察1的出现,我们考虑这一个出现能不能放在第二排,显然,在这个1

之前出现的那些0,1对应的人

要么是在这个1左边,要么是在这个1前面.而肯定要有一个0的,在这

个1前面,统计在这个1之前的0和1的个数.

也就是要求,0的个数大于1的个数.

OK,问题已经解决.

如果把0看成入栈操作,1看成出栈操作,就是说给定6个元素,合法的

入栈出栈序列有多少个.

这就是catalan数,这里只是用于栈,等价地描述还有,二叉树的枚举,多

边形分成三角形的个数,圆括弧插入公式中的

方法数,其通项是c(2n, n)/(n+1)。

第一部分单选题(前10题,每题2分;后10题,每题3分。选对得满分,选错倒扣1分,不选得0分)

1、一次内存访问,SSD硬盘访问和SATA硬盘随机访问的时间分别是()

A、几微秒,几毫秒,几十毫秒

B、几十纳秒,几十微秒,几十毫秒

C、几十纳秒,几十微秒,几十毫秒

D、几微秒,几十微秒,几十毫秒

2、8进制数256,转化成7进制数是(B)

A、356

B、336

C、338

D、346

3、某网络的IP地址空间为192.168.5.0/24,采用定长子网划分,子网掩码为255.255.255.248,则该网络的最大子网个数、每个子网内最大可分配地址个数各位(C)

A、8,32

B、32,8

C、32,6

D、8,30

4、以下关于链式存储结构说法错误的是(A)

A、查找节点时链式存储比顺序存储快

B、每个节点是由数据域和指针域组成

C、比顺序存储结构的存储密度小

D、逻辑上不相邻的节点物理上可能相邻

5、假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[1][2]的值为(A)

A、6

B、4

C、2

D、8

6、下面函数的功能是(C)

int fun (char *s)

{

char *p=s;

while(*p++);

return p-s-1;

}

A、计算字符串的位(bit)数

B、复制一个字符串

C、求字符串的长度

D、求字符串存放的位置

7、判断有向图是否存在回路,利用(A)方法最佳

A、拓扑排序

B、求最短路径

C、求关键路径

D、广度优先遍历

8、依次读入数据元素序列{a,b,c,d,e,f,g}进栈,元素进栈或出栈顺序是未知的,下列序列中,不可能成为栈空时弹出的元素构成序列的有(D)

A、{d,e,c,f,b,g,a}

B、{c,d,b,e,f,a,g}

C、{e,f,d,g,c,b,a}

D、{f,e,g,d,a,c,b}

9、下列有关图的遍历说法中,不正确的是(C)

A、有向图和无向图都可以进行遍历操作

B、基本遍历算法两种:深度遍历和广度遍历

C、图的遍历必须用递归实现

D、图的遍历算法可以执行在有回路的图中

10、在16位机器上跑下列foo函数的结果是(B)

void foo()

{

int i = 65536;

cout << i <<”,”;

i = 65535;

cout << i;

}

A、-1,65535

B、0,-1

C、-1,-1

D、0,65535

11、有一段年代久远的C++代码,内部逻辑复杂,现在需要利用其实现一个新的需求,假定有以下可行的方案,应当优先选择(D)

A、修改老代码的接口,满足新的需求

B、将老代码抛弃,自己重新实现类似的逻辑

C、修改老代码的内部逻辑,满足新的需求

D、在这段代码之外写一段代码,调用该代码的一些模块,完成新功能需求

12、在5个页框上使用LRU页面替换算法,当页框初始为空时,引用序列为0、1、7、8、6、2、3、7、2、9、8、1、0、2,系统将发生(C)次缺页

A、13

B、12

C、11

D、8

分析:缺页为:0、1、7、8、6、2、3、9、8、1、0,共11次

13、阿里巴巴有相距1500km的机房A和B,现有100GB数据需要通过一条FTP 连接在100s的时间内从A传输到B。已知FTP连接建立在TCP协议之上,而TCP 协议通过ACK来确认每个数据包是否正确传送。网络信号传输速度2*108m/s,假设机房间带宽足够高,那么A节点的发送缓冲区可以设置为最小(A)

A、18M

B、12M

C、6M

D、24M

分析:

TCP协议原理:TCP每发送一个报文段,就启动一个定时器,如果在定时器超时之后还没有收到ACK确认,就重传该报文。

如图所示,数据包由A的缓冲区发往B,B在收到数据包以后,回发一个ACK 确认包给A,之后A将该数据包从缓冲区释放。因此,该数据包会一直缓存在A 的缓冲区,直到一个ACK确认为止。题目要求在100s内发送100GB数据,网络的传输速率至少是1G/s,某个数据包n在A中缓存的时间就是数据包n从A到B,再加上该数据包的ACK从B到A的时间:2*1500km/(2*108m/s)=1.5*10-2s,该段时间A中缓存的数据量至少是1G/s*1.5*10-2s约为15M

14、有3个节点的二叉树可能有(A)种

A、5

B、13

C、12

D、15

15、设某文件经内排序后得到100个初始归并段(初始顺串),若使用多路归并排序算法,且要求三趟归并完成排序,问归并路数最少为(D)

A、8

B、7

C、6

D、5

分析:m个元素k路归并的归并趟数s=log k(m),代入数据:log k(100)≦3

16、一个优化的程序可以生成一n个元素集合的所有子集,那么该程序的时间复杂度是(B)

A、O(n!)

B、O(2n)

C、O(n2)

D、O(n log n)

17、快速排序在已经有序的情况下效率最差,复杂度为(B)

A、O(n log n)

B、O(n2)

C、O(n1.5)

D、O(n2 log n)

18、从一副牌(52张,不含打小怪)里抽出两张牌,其中一红一黑的概率是(D)

A、25/51

B、1/3

C、1/2

D、26/51

分析:52张牌从中抽两张,就是C522种情况,一红一黑是C261 * C261种情况,概率P = C261 * C261 / C522 =26/51

19、有一堆石子共100枚,甲乙轮流从该堆中取石子,每次可取2、4或6枚,若取得最后的石子的玩家为赢,若甲先取,则(C)

A、谁都无法取胜

B、乙必胜

C、甲必胜

D、不确定

分析:先取的人只需要保证最后剩8枚就胜了。而要保证最后剩8枚,则必须要保证每一个回合内取的数是一个可控的固定数,显然这个数字是8,所以只需要保证第一次取完后,剩下的数字是8的倍数,就一定能胜。100除以8余数为4,故而,甲先取4枚,之后每一个回合所取数与上一个回合乙所取数之和为8,就能保证必胜。

20、现有一完全的P2P共享协议,每次两个节点通讯后都能获取对方已经获取的全部信息,现在使得系统中每个节点都知道所有节点的文件信息,共17个节点,假设只能通过多次两个对等节点之间通讯的方式,则最少需要(C)次通讯

A、32

B、31

C、30

D、29

解法由@龙人920提供

分析:如上图1所示,假设有5个节点,按连线1、2、3、4通讯之后,节点4和5就掌握了所有节点的信息,之后,1、2、3节点只需跟4或5任一节点通讯一次即连线5、6、7就可保证每个节点都知道所有节点的信息,总的通讯次数是(n-1)+(n-2)=2n-3次。

如果将所有节点分成两组,如图2所示,两组中的节点分别按连线1-8顺序通讯之后,节点4和5就掌握了1-5所有节点的信息,节点9和0就掌握了6-0所有节点的信息,再按连线9、10通讯之后,节点4、5、9、0就掌握了1-0所有节点的信息,剩下的节点只需跟4、5、9、0任一节点通讯一次就可保证每个节点知道所有节点信息,和图1相比,多了9和10两次通讯,总的通讯次数是

(2n

1-3)+(2n

2

-3)+2=2n-4次(n

1

和n

2

分别表示分组中元素个数)。

分3组的情况是(2n

1

-3)+(2n

2

-3)+(2n

3

-3)+6=2n-3次

分4组的情况是(2n

1

-3)+(2n

2

-3)+(2n

3

-3)+(2n

4

-3)+8=2n-4次

第二部分不定项选择(每题五分,每题有1-5个正确选项,完全正确计5分,漏选计2分不选计0分,多选、错选计-2分)

21、2-3树是一种特殊的树,它满足两个条件:

(1)每个内部节点有两个或三个子节点;

(2)所有的叶节点到根的路径长度相同;

如果一颗2-3树有9个叶节点,下列数量个非叶节点的2-3树可能存在的有(BE) A、8 B、7 C、6 D、5 E、4

分析:根据条件(2),叶节点只能在同一层,根据条件(1),上一层的父节点只能是3个或4个,只能是如下图所示的两种结果

22、下列有关进程的说法中,错误的是(ABC)

A、进程与程序是一亿对应的

B、进程与作业时一一对应的

C、进程是静态的

D、进程是动态的过程

23、下列函数定义中,有语法错误的是(D)

A、void fun(int x, int *y){x *= *y;}

B、int * fun(int *x, int y){return x += y;}

C、void fun(int *x, int y){*x += y;}

D、void fun(int x, int *y){*x *= *y;}

阿里巴巴编码规范题库

1.如何处理单元测试产生的数据,下列哪些说法是正确的?ABC A .测试数据入库时加特殊前缀标识。 B .测试数据使用独立的测试库。 C .自动回滚单元测试产生的脏数据。 D .无须区别,统一在业务代码中进行判断和识别。 多选2.关于并发处理,下列哪些说法符合《阿里巴巴Java开发手册》:ABC A .线程资源必须通过线程池提供,不允许在应用中自行显式创建线程。 B .同步处理时,能锁部分代码区块的情况下不要锁整个方法;高并发时,同步调用应该考虑到性能损耗。 C .创建线程或线程池时,推荐给线程指定一个有意义的名称,方便出错时回溯。 D .推荐使用Executors.newFixedThreadPool(int x)生成指定大小的线程池。(线程池不允许使用Executors 去创建,而是通过ThreadPoolExecutor 的方式) 多选3.下列哪些说法符合《阿里巴巴Java开发手册》:ACD A .对于“明确停止使用的代码和配置”,如方法、变量、类、配置文件、动态配置属性等要坚决从程序中清理出去,避免造成过多垃圾。 B .永久弃用的代码段注释掉即可,即不用加任何注释。 C .对于暂时被注释掉,后续可能恢复使用的代码片断,在注释代码上方,统一规定使用三个斜杠(///)来说明注释掉代码的理由。 D .不要在视图模板中加入任何复杂的逻辑。 多选4.关于分页查询,下列哪些说法符合《阿里巴巴Java开发手册》:ABC A .分页查询,当统计的count为0时,应该直接返回,不要再执行分页查询语句。 B .iBATIS自带的queryForList(String statementName,int start,int size)分页接口有性能隐患,不允许使用。 C .定义明确的sql查询语句,通过传入参数start和size来实现分页逻辑。 D .可使用存储过程写分页逻辑,提高效率。 多选5.根据《阿里巴巴Java开发手册》,以下功能必须进行水平权限控制校验的有:ABCD A .订单详情页面。 B .类目管理后台。 C .店铺装修后台。 D .订单付款页面 多选1.关于多线程并行处理定时任务的情况,下列哪些说法符合《阿里巴巴Java开发手册》:BCD A .推荐使用Timer方式处理。 B .推荐使用ScheduledExecutorService方式处理。 C .Timer运行多个TimeTask时,只要其中之一没有捕获抛出的异常,其它任务便会自动终止运行。 D .ScheduledExecutorService并发运行多个定时任务时,其中某线程抛出异常,不会影响到其它线程的继续运行。

阿里数据分析笔试题

2016阿里巴巴数据分析师职位笔试题目 阿里巴巴作为全球领先的小企业电子商务公司,招聘阿里巴巴数据分析师职位都会出些什么笔试题目呢?咱们一起看看。 一、异常值是指什么?请列举1种识别连续型变量异常值的方法? 异常值(Outlier) 是指样本中的个别值,其数值明显偏离所属样本的其余观测值。在数理统计里一般是指一组观测值中与平均值的偏差超过两倍标准差的测定值。 Grubbs’test(是以Frank E. Grubbs命名的),又叫maximum normed residual test,是一种用于单变量数据集异常值识别的统计检测,它假定数据集来自正态分布的总体。 未知总体标准差σ,在五种检验法中,优劣次序为:t检验法、格拉布斯检验法、峰度检验法、狄克逊检验法、偏度检验法。 点评:考察的内容是统计学基础功底。 二、什么是聚类分析?聚类算法有哪几种?请选择一种详细描述其计算原理 和步骤。 聚类分析(cluster analysis)是一组将研究对象分为相对同质的群组(clusters)的统计分析技术。聚类分析也叫分类分析(classification analysis)或数值分类(numerical taxonomy)。聚类与分类的不同在于,聚类所要求划分的类是未知的。 聚类分析计算方法主要有:层次的方法(hierarchical method)、划分方法(partitioning method)、基于密度的方法(density-based method)、基于网格的方法(grid-based method)、基于模型的方法(model-based method)等。其中,前两种算法是利用统计学定义的距离进行度量。 k-means 算法的工作过程说明如下:首先从n个数据对象任意选择k 个对象作为初始聚类中心;而对于所剩下其它对象,则根据它们与这些聚类中心的相似度(距离),分别将它们分配给与其最相似的(聚类中心所代表的)聚类;然后再计算每个所获新聚类的聚类中心(该聚类中所有对象的均值);不断重复这一过程直到标准测度函数开始收敛为止。一般都采用均方差作为标准测度函数. k个聚类具有以下特点:各聚类本身尽可能的紧凑,而各聚类之间尽可能的分开。 其流程如下: (1)从n个数据对象任意选择k 个对象作为初始聚类中心;

阿里巴巴笔试题(南京站,20011年9月)

阿里巴巴笔试题目(20011.9) 技术类笔试试题(卷一)卷一:Java开发、测试工程师(25题) 技术类笔试试题(卷二)卷二:搜索研发、 C++(25题) 1. 20个阿里巴巴B2B技术部的员工被安排为4排,每排5个人,我们 任意选其中4人送给他们一人一本《effective c++》,那么我们 选出的4人都在不同排的概率为: A.5^4*5!*15!/20! B. 4^5*5!*15!/20! C. 5^4*4!*16!/20! D. 4^5*4!*16!/20! 2. 若有序表的关键字序列为(b,c,d,e,f,g,q,r,s,t),则在二分查找关键字b的过程中,先后进行的关键字依次为: A.f,c,b B.f,d,b C.g,c,b D.g,d,b 3. perl里面声明:open(FILE, mode,file); 操作的描述,下列哪项不正确? A. FILE可以用变量$file来代替 B. mode可以和file写在一起,例如:open(FILE, ‘>file’) C. mode为+<的时候,只可以读文件,不能写文件 D. mode可以省略不写 4. 有一虚拟存储系统,若进程在内存中占3页(开始时内存为空),若采用先进先出(FIFO)页面淘汰算法,当执行如下访问页号序列后1,2,3,4,5,1,2,5,1,2,3,4,5,会发生多少缺页 A.7 B.8

C.9 D.10 5. 设有一个顺序栈S,元素s1,s2,s3,s4,s5, s6依次进栈,如果六个元素的出栈顺序为s2,s3,s4,s6,s5,s1,则顺序栈的容量至少应为多少 A.2 B.3 C.4 D.5 6. 下列关于文件索引结构的叙述中,哪一个是错误的? A. 采用索引结构,逻辑上连续的文件存放在连续的物理块中 B. 系统为每个文件建立一张索引表 C. 索引结构的优点是访问速度快,文件长度可以动态变化 D. 索引结构的缺点是存储开销大 7. 在ASC算法team日常开发中,常常面临一些数据结构的抉择,令人纠结。目前大家在策划一个FBI项目(Fast Binary Indexing),其中用到的词汇有6200条,词汇长度在10-15之间,词汇字符是英文字母,区分大小写。请在下面几个数据结构中选择一个使检索速度最快的: A. 二叉搜索树,比较函数开销:1次运算/每字符 B. 哈希表,hash算法开销:10次运算/每字符 C. 链表,比较函数开销:1次运算/每字符 D. TRIE树,寻找子节点开销:1次运算/每字符 8. [0,2,1,4,3,9,5,8,6,7]是以数组形式存储的最小堆,删除堆顶元素0后的结果是: A. [2,1,4,3,9,5,8,6,7] B. [1,2,5,4,3,9,8,6,7] C. [2,3,1,4,7,9,5,8,6] D. [1,2,5,4,3,9,7,8,6] 9. 某页式存储管理系统中,地址寄存器长度为24位,其中页号为14位,则主存的分块大小是()字节。 A.10 B.2^10

运营岗问题及答案——【阿里面试非技术岗】

1 详情页的优化通过哪几项数据分析? 1.页面停留时间跳失率收藏加够转化 2.与同类优秀产品对比,增加符合自己产品的内容 2 直通车推广主要关注哪几个数据?推广的思路? 展现量 点击率 收藏 加购 转化率 平均点击扣费 投入产出比 首先测试宝贝数据,点击、收藏、加购是否达标,与同类商品对比 宝贝数据没有问题 前期根据宝贝标题的核心关键词来添加直通车关键词,从而让直通车带动自然搜索

中期删除一些数据表现不好的关键词加入一些数据好投产高的关键词 后期加入与核心关键词不匹配但是投产高的一些关键词,竞争宝贝一些引流关键词 3 影响产品权重主要哪几个因素? 收藏加购转化销量停留时间访问深度老客户回访下单旺旺在线时间服务保障退货率纠纷率动销率 动态评分好评率产品违规 4 通过以上几个因素简要说明优化思路 店铺;能开通的保障服务全部开通店铺保证持续上新没有访客流量的宝贝及时下架删除。有能力去加入淘宝的一些资质认证(如极有家ifashion 中国制造)

宝贝;优化宝贝的详情,尽可能的体现宝贝的卖点优势,对买家关注的产品细节特点详细展示,展示一些效果的宝贝实拍图多角度多细节的展示宝贝。宝贝前期人为做一些宝贝的基础销量与评价还有问答家(尽可能带图片,评价真实)前期可以做一些浏览单做收藏加购,做好宝贝的关联营销与搭配套餐。保证产品质量与详情图片和描述相符 新客户;出现问题及时与买家沟通解决,引导买家加入自己的微信做好评返现送礼品 老客户;利用一些工具,微淘短信淘金币活动会员权益与老客户进行互动在自己 微信中的老客户用些价格优势和礼品做一些老客户的回访回购 5 新品的推广方法? 直通车结合问题 4 中宝贝+老客户 6 店铺常用推广方式有哪些你熟悉哪几种 直通车钻展淘宝客活动(天天特价淘金币淘抢购聚划算主题活动) 7 店铺爆款的操作模式 1.直通车+自然搜索 2.活动引爆(淘宝客高佣金) 前期人为做数据数据起来报活动

阿里笔试题

1、假设栈S和队列Q的初始状态为空,元素a、b、c、d、e、f依次通过S和Q,即每一 个元素必须先进栈,之后再出栈进入队列。若这6个元素出队的顺序是b、d、c、f、e、a,则栈S的容量至少应该为______。 2、在一个元素个数为N的数组里,找到升序排在N/5位置的元素的最优算法时间复杂度是 ______。 3、已知一棵有 2014 个结点的树,其叶结点个数为 116,该树对应的二叉树中无左孩子结点 或右孩子结点的结点个数是______。 4、下述描述中,正确的是____。 ?char const * pointer表示pointer指向的内存区域的内容不能修改 ?const char *pointer表示pointer不能指向别的内存地址 ?char * const pointer 表示pointer指向的内存区域的内容不能修改 ?const char * const pointer在C++语言中不合法 5、你有一个3X3X3的立方体。你现在在正面左上的顶点,需要移动到对角线的背面右下的顶点中。每次移动不限距离,但只能从前至后、从左至右、从上至下运动,即不允许斜向或后退。有______种方法。 6、在设计一个离线的大数据处理系统,下面哪个性能指标不是系统追求的? ?健壮性 ?高吞吐 ?低延迟 ?处理的数据规模 7、需要频繁的插入删除操作使用什么结构比较合适______。 ?数组 ?队列 ?链表

?栈 8、在unix系统下执行chmod("/usr/test/sample",0753)之后该文件sample的访问权限为____。 ?拥有者可读写执行,同组用户可写可执行,其他用户可读可执行 ?拥有者可读写执行,同组用户可读写,其他用户可读可执行 ?拥有者可读写执行,同组用户可读可执行,其他用户可写可执行 ?拥有者可读写执行,同组用户可读可执行,其他用户可读写 ?数组做sizeof的参数不退化,传递给strlen就退化为指针了。 ?sizeof的参数可以是数据的类型,也可以是变量,而strlen只能以结尾为‘\0‘的字符串作参数。 ?sizeof和strlen都是在编译后运行才能计算出来结果。 ?sizeof计算的是数据类型占内存的大小,而strlen计算的是字符串实际的长度。 10、下列代码的输出结果是 int i=-1; unsigned j=1; if (ii) printf("(j>i)成立\n"); else

阿里数据整合及数据管理体系解读

前段时间给大家推荐了《大数据之路--阿里巴巴大数据实践》,这本书确实内容非常详实,全是干货,值得反复品味。刚刚看完第9章,讲的是数据整合及管理体系,觉得非常好,设计得非常精妙,只看看觉得还不能深刻理解,遂做个读书笔记按照自己理解重构整理一遍,同时补充上自己的解读分享给大家,推荐给准备搭建数据产品或者数据平台的人。 传统企业的业务变化相对不快,但使用一般的表格文档来管理数据过程也已经越来越困难,更何况互联网这样迅速变化的业务,做好数据整理及管理的难度可想而知,但阿里的数据团队还是形成了完成的方法体系,并把其工具化。也只有完备方法体系下构建的工具能满足复杂的数据管理需求。 阿里大数据建设方法论的核心就是,从业务架构设计到模型设计,从数据研发到数据服务,做到数据可 管理、可追溯、可规避重复建设。目标是建设统一的、规范的数据接入层(ODS )和数据中间层(DWD和 DWS ),通过数据服务和数据产品,完成服务于阿里巴巴的大数据系统建设。所以数据管理体系是包含具体 的方法论以及相关的产品两个部分,通过产品把方法论固化为标准的流程和操作,达到数据管理的目的。 数据体系架构 数据管理体系包括了业务板块划分、数据域提炼、业务过程梳理、原子指标/度量定义、派生指标定义及 管理,维度分析整理以及数据模型的设计。通过下面的体系架构图来看看数据体系建设的过程、以及每一步做什么和如何做。另外,如何定义每个术语的涵义,准确定义术语非常关键,有时候描述不清楚复杂的流程、场景最根本是因为对其中的一些概念没有非常很好的厘清。

业务板块:根据业务的属性划分出相对独立的业务板块,业务板块间指标和业务重叠性较低,比如电 商板块涵盖淘宝、天猫、天猫国际、 B2B 系,金融板块涵盖支付宝、花呗、蚂蚁微贷等。业务板块非常宏观, 可以想象成贾不死的 7大生态。 规范定义:结合行业的数据仓库建设经验和阿里数据自身的特点,设计出的一套过程方法和数据规范命 名体系,规范定义 将用于模型设计中。规范定义指以维度建模作为理论基础,构建总线矩阵,划分和定义数 据域、业务过程、原子指标 /度量、修 饰类型、修饰词、时间周期、派生指标规则,下图是它们之间的关系, 以及具体实例。 规范定义实例 修矗型 维度 ▼ . 1 ▼ ■ T 楼饰词 戶子洁标! 岖廈隱性! 1 嚴生拦标 <■- 一 一 _ 子指标十対刖息割十幔茶词 1 J ----- 1… 二二 — — — — | — --- ---- na ___ —.1 —— —j T V r* .m _ J — * ?■ — — — 一 一 一 — 1 ir ' 疋总事实表 [杷明唧审冥聚合的事 寰表】 ( 明鉅車寬袁 盘原始板度的明堀救据) (把逍担鍵度轲理化的霍表:. ___ t.. ivritw ■近1夫通址奄 的丫 *TTff ](1 009 P*V..WTfl 支讨督糾 P*v _a*Tit 喙巧茗呼 t 金tt 古式

阿里巴巴笔试题+解析(完整)

阿里巴巴面试题 1、 20个阿里巴巴B2B技术部的员工被安排为4排,每排5个人,我们任意选其中4人送给他们一人一本《effective c++》,那么我们选出的4人都在不同排的概率为: A、 5^4*5!*15!/20! B、 4^5*5!*15!/20! C、 5^4*4!*16!/20! D、 4^5*4!*16!/20! 2、若有序表的关键字序列为(b,c,d,e,f,g,q,r,s,t),则在二分查找关键字b的过程中,先后进行的关键字依次为: A、f,c,b B、f,d,b C、g,c,b D、g,d,b 3、 perl里面声明:open(FILE,mode,file); 操作的描述,下列哪项不正确? A、 FILE可以用变量$file来代替 B、 mode可以和file写在一起,例如:open(FILE, ‘>file’) C、 mode为+<的时候,只可以读文件,不能写文件(既可以读也可以写) D、 mode可以省略不写 4、有一个虚拟存储系统,若进程在内存中占3页(开始时内存为空),若采用先进先出(FIFO)页面淘汰算法,当执行如下访问页号序列后1,2,3,4,5,1,2,5,1,2,3,4,5,会发生多少缺页? A、7 B、8 C、9 D、10 5、设有一个顺序栈S,元素s1、s2、s3、s4、s5、s6依次进栈,如果6个元素的出栈顺序为s2、s3、s4、s 6、s5、s1,则顺序栈的容量至少应为多少? A、2 B、3 C、4 D、5 6、下列关于文件索引结构的叙述中,哪一个是错误的? A、采用索引结构,逻辑上连续的文件存放在连续的物理块中 B、系统为每个文件建立一张索引表 C、索引结构的优点是访问速度快,文件长度可以动态变化 D、索引结构的缺点是存储开销大 7、在ASC算法team日常开发中,常常面临一些数据结构的抉择,令人纠结。目前大家在策划一个FBI项目(Fast Binary Indexing),其中用到的词汇有6200条,词汇长度在10-15之间,词汇字符是英文字母,区分大小写。请在下面几个数据结构中选择一个使检索速度最快的: A、二叉搜索树,比较函数开销:1次运算/每字符 B、哈希表,hash算法开销:10次运算/每字符 C、链表,比较函数开销:1次运算/每字符 D、 TRIE树,寻找子节点开销:1次运算/每字符 8、【0、2、1、4、3、9、5、8、6、7】是以数组形式存储的最小堆,删除堆顶元素0后的结果是() A、【2、1、4、3、9、5、8、6、7】 B、【1、2、5、4、3、9、8、6、7】

阿里面试题

阿里巴巴Java面试题锦集 阿里java相关问题,都是之前通过不断优秀人才的铺垫总结的,希望对大家帮助 1、微信红包怎么实现。 2、海量数据分析。 3、测试职位问的线程安全和非线程安全。 4、HTTP2.0、thrift。 5、面试电话沟通可能先让自我介绍。 6、分布式事务一致性。 7、nio的底层实现。 8、jvm基础是必问的,jvm GC原理,JVM怎么回收内存。 9、Java是什么。 10、API接口与SDI接口的区别(API是提供给别人的接口)。 11、dubbo如何一条链接并发多个调用。Dubbo的原理,序列化相关问题。 12、用过哪些中间件。 13、做过工作流引擎没有。 14、以前的工作经历,自己觉得出彩的地方(钉钉) 15、线程池的一些原理,锁的机制升降级(天猫、蚂蚁) 16、从系统层面考虑,分布式从哪些纬度考虑(天猫) 17、Hadoop底层怎么实现(天猫) 18、threadLocal,线程池,hashMap/hashTable/coccurentHashMap等(天猫) 19、秒杀系统的设计(天猫)

20、虚拟机,IO相关知识点(天猫) 21、Linux的命令(天猫) 22、一个整形数组,给定一个数,在数组中找出两个数的和等于这个数,并打印出来,我写的时间复杂度高,要求O(n)。(天猫) 23、n个整数,找出连续的m个数加和是最大。(天猫) 24、更重视开源技术(蚂蚁金服上海) 25、数据库锁隐原理(蚂蚁金服网商) 26、1000个线程同时运行,怎么防止不卡(航旅) 27、并列的并发消费问题(航旅) 28、高并发量大的话怎么处理热点,数据等(蚂蚁金服) 29、如何获取一个本地服务器上可用的端口 30、流量控制相关问题(蚂蚁金服) 31、数据库TPS是多少,是否进行测试过(天猫) 32、缓存击穿有哪些方案解决(天猫) 33、Java怎么挖取回收器相关原理(财富) 34、Java的集合都有哪些,都有什么特点(信息平台) 35、分布式锁,redis缓存,spring aop,系统架构图,MySQL的特性(信息平台) 36、场景,同时给10万个人发工资,怎么样设计并发方案,能确保在1分钟内全部发完打个比方会提出类似的场景(信息平台) 阿里HR面试时的核心问题: 1、你为什么离职?

数据分析笔试题

从互联网巨头数据挖掘类招聘笔试题目看我们还差多少知识 1 从阿里数据分析师笔试看职业要求 以下试题是来自阿里巴巴招募实习生的一次笔试题,从笔试题的几个要求我们一起来看看数据分析的职业要求。 一、异常值是指什么?请列举1种识别连续型变量异常值的方法? 异常值(Outlier)是指样本中的个别值,其数值明显偏离所属样本的其余观测值。在数理统计里一般是指一组观测值中与平均值的偏差超过两倍标准差的测定值。 Grubbs’test(是以Frank E. Grubbs命名的),又叫maximum normed residual test,是一种用于单变量数据集异常值识别的统计检测,它假定数据集来自正态分布的总体。 未知总体标准差σ,在五种检验法中,优劣次序为:t检验法、格拉布斯检验法、峰度检验法、狄克逊检验法、偏度检验法。 点评:考察的内容是统计学基础功底。 二、什么是聚类分析?聚类算法有哪几种?请选择一种详细描述其计算原理和步骤。 聚类分析(cluster analysis)是一组将研究对象分为相对同质的群组(clusters)的统计分析技术。聚类分析也叫分类分析(classification analysis)或数值分类(numerical taxonomy)。聚类与分类的不同在于,聚类所要求划分的类是未知的。 聚类分析计算方法主要有:层次的方法(hierarchical method)、划分方法(partitioning method)、基于密度的方法(density-based method)、基于网格的方法(grid-based method)、基于模型的方法(model-based method)等。其中,前两种算法是利用统计学定义的距离进行度量。k-means 算法的工作过程说明如下:首先从n个数据对象任意选择k 个对象作为初始聚类中心;而对于所剩下其它对象,则根据它们与这些聚类中心的相似度(距离),分别将它们分配给与其最相似的(聚类中心所代表的)聚类;然后再计算每个所获新聚类的聚类中心(该聚类中所有对象的均值);不断重复这一过程直到标准测度函数开始收敛为止。一般都采用均方差(标准差)作为标准测度函数. k个聚类具有以下特点:各聚类本身尽可能的紧凑,而各聚类之间尽可能的分开。 其流程如下: (1)从n个数据对象任意选择k 个对象作为初始聚类中心; (2)根据每个聚类对象的均值(中心对象),计算每个对象与这些中心对象的距离;并根据最小距离重新对相应对象进行划分; (3)重新计算每个(有变化)聚类的均值(中心对象); (4)循环(2)、(3)直到每个聚类不再发生变化为止(标准测量函数收敛)。 优点:本算法确定的K 个划分到达平方误差最小。当聚类是密集的,且类与类之间区别明显时,效果较好。对于处理大数据集,这个算法是相对可伸缩和高效的,计算的复杂度为O(NKt),其中N是数据对象的数目,t是迭代的次数。一般来说,K<

阿里云笔试题目

1.有一个文件:c:/c.txt,写java程序把该文件内容复制两遍,追加到c:/c.txt; 2.写正则表达式1.邮箱2.数字 3.HashMap 改变map类对用户会不会有影响? 4.Linux中需查看所有的java进程,用什么命令 ps -ef|grep java 5.Ajax请求的整个流程 AJAX 在浏览器与Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。 open():建立到服务器的新请求。 send():向服务器发送请求。 abort():退出当前请求。 readyState:提供当前 HTML 的就绪状态。 responseText:服务器返回的请求响应文本。 6.写一个类实现线程同步的单例设计模式 7.一个包含4块硬盘的服务器一年中至少有一块硬盘出故障的概率是99.99%,每块硬盘任意时刻出故 障的概率服从相同的分布规律,并且彼此独立,问12块硬盘的服务器一季度内至少有一个硬盘出故障的概率是多少。 8.有一个size1000的ector,删除其中的第5,6,7号元素,要求效率高(C) 9.数列L中有n个整数,其中K个数字出现了两次,1个数字出现了一次,所以n=2k+1; 请在使用O(1)空间的前提下,尽快找出只出现一次的那个数字,并说明算法的复杂度。 用异或,时间复杂度O(n) 10.有一个文件,存在40亿个不重复的整数(0~4294967295),可用内存只有256M,32比 特的整数有4294967295(约42.9亿)种取值可能,如何找出不存在的294967295(约 2.9亿)个数扫描结果数据可存放到文件中,不占用内存 分段载入内存,排序,输出,一共要扫描文件2^32/(256*2^20/32)=512遍 BITMAP分16次处理 建42.9bits的文件,按200m一段映射,先遍历40亿个数,检查n/有8字节位置是否在当前映射区,否则换映射位置,然后标记。然后读2.9亿检查,都一个道理,建在共享内存里的bitmap 而已。 位图算法,用含有1千万个位的字符串来表示这个文件,文件中有的数据则标识为1,没有则标识为0,最后从第一位读至最后一位,即为有序的集合。这种算法充分利用了题目中给的条件,但也仅仅适合本题目,(不会有重复的数字,同时不与其余的数进行关联)

产品类面试真题阿里笔试非技术岗

产品类面试真题 Q:你的互联网项目产品经历 Tips:具体小问题包括:①如何发现的需求?②如何开展项目?③产品有什么问题?④如何解决?⑤团队组成?如何分工?⑥担当角色发挥的作用?答:从产品定位、功能、解决 Q:说出你印象最深刻的项目? Tips:从项目内容,你在当中的作用,你的收获谈起。当中出现的问题、数据调查、运营手段、取得成果等角度来谈。之后面试官会从中问下实施细节,说的时候最好可以体现你在团队中的职务,取得的效果,从中的收获? Q:你觉得90后身上具备什么素质? A:首先,具备什么素质因人而异。但大部分90后,平均智商偏高(受到良好的教育);对新鲜事物的接受能力较强;乐天派,有激情,有活力。 Tips:这是一道考情商的题,不要说的太极端就好, Q:简单的谈谈你的实习经历? Tips:如果你做过产品相关工作,就谈这个,如果没有,就谈产品经理应该具备的一些能力所对应的经历。 Q:你对产品经理的理解 A1:产品经理是生孩子的,运营是养孩子的。是一个团队的粘合剂,将各个部门联系到一起。 A2:产品经理是一个非常典型的“门槛在里面”的岗位,看上去谁都能做,其实个体间能力的相差能够非常之大。个人觉得对这个问题的回答,很大程度上就决定了此次面试的结果,建议大家看一看《启示录:打造用户喜爱的产品》和《腾讯方法》这两本书以加深理解。 个人建议可以从这么几个方向入手:产品经理是做啥的、产品经理需要具备哪些能力、产品经理对于整个团队的重要性、产品经理的自我完善与成长路径、自身条件与产品经理职位需求的契合度。 Tips: ①我理解的PM需要具备:需求挖掘,数据分析,团队沟通,执行力等方面的能力~ ②为什么要做PM:从a自己的愿景、b能力与岗位的匹配、c提升能力,这三个角度回答问题。 做产品的大前提是要喜欢产品,不然将来你痛苦,团队痛苦,用户也痛苦,是不是?网络

阿里巴巴笔试题

1.自我介绍 2.介绍一个你所做过的测试项目 3.bug状态的转换,及各状态转换执行人是谁 4.介绍软件测试流程 5.如果你和开发人员出现分歧怎么办 6.如果第二天就到交付日了,回归测试还没有执行完毕,你该怎么办? 7.你有女/男朋友么?你未来如何打算? 8.你还有什么要问我的问题么? 9.我是做功能测试的,功能测试比较枯燥,你怎么认为? 、要对语句A>1 OR B <= 3 测试……(不记得了)100%覆盖,至少要多少测试用例 2、典型的针对系统漏洞的Dos攻击? 3、4,2,2,3,6,15,(?)A,20 B,24 C,25 D,45 4、3升,5升,7升量筒,已知3、5量筒装满水,7量筒为空,问至少要倒多少次才能使其中一个量筒的水为4升 5、太长了 6、太长了 7、保护邮件安全的软件? 8、普通用户执行超级用户文件的指令 9、软件测试对象 10、软件缺陷生命期 11、OPENAPI平台 12、超长字符串攻击属于? 13、项目的最重要的是()和() 14、可能引起Cross Site Scripting攻击的是? 15、马可夫模型(HMM)的三个基础?(非选择) 16、有序集合a, b,求交集(非选择) 转载请注明出自应届生求职招聘论坛https://www.wendangku.net/doc/f410168393.html,/,本贴地址:https://www.wendangku.net/doc/f410168393.html,/thread-33014-1-1.html DBA笔试题 一:SQL tuning 类 1 列举几种表连接方式 等连接、非等连接、自连接、外连接(左、右、全)

2 不借助第三方工具,怎样查看sql的执行计划 I) 使用Explain Plan,查询PLAN_TABLE; EXPLAIN PLAN SET STA TEMENT_ID='QUERY1' FOR SELECT * FROM a WHERE aa=1; SELECT operation, options, object_name, object_type, ID, parent_id FROM plan_table WHERE STA TEMENT_ID = 'QUERY1' ORDER BY ID; II)SQLPLUS中的SET TRACE 即可看到Execution Plan Statistics SET AUTOTRACE ON; 3:如何使用CBO,CBO与RULE的区别 IF 初始化参数OPTIMIZER_MODE = CHOOSE THEN --(8I DEFAULT) IF 做过表分析 THEN 优化器Optimizer=CBO(COST); /*高效*/ ELSE 优化器Optimizer=RBO(RULE); /*高效*/ END IF; END IF; 区别: RBO根据规则选择最佳执行路径来运行查询。 CBO根据表统计找到最低成本的访问数据的方法确定执行计划。 使用CBO需要注意: I) 需要经常对表进行ANALYZE命令进行分析统计; II) 需要稳定执行计划; III)需要使用提示(Hint); 使用RULE需要注意: I) 选择最有效率的表名顺序 II) 优化SQL的写法; 4 如何定位重要(消耗资源多)的SQL 使用CPU多的用户session SELECT a.SID, spid, status, SUBSTR (a.program, 1, 40) prog, a.terminal,a.SQL_TEXT, osuser, V ALUE / 60 / 100 V ALUE FROM v$session a, v$process b, v$sesstat c WHERE c.statistic# = 12 AND c.SID = a.SID AND a.paddr = b.addr ORDER BY V ALUE DESC; 5 如何跟踪某个session的SQL 利用TRACE 跟踪 ALTER SESSION SET SQLTRACE ON; COLUMN SQL format a200; SELECT machine, sql_text SQL

阿里巴巴笔试题答案

第一题选C,不解释吧,按位与就行 第二题选D,不解释,2*3*sizeof(int*)=48(64位机器上是8字节一个指针) 第三题选C,我不确定,不过,应该是的 第四题选D,明显考的是补码 第5题选D,果断访问错误(这是Java的代码) 第6题选B,大家都懂 第7题果断A啊 第8题果断是B,不解释,大家懂 第9题是B,’0’不是’\0’,这个要注意 第10题果断是Fibonacci,显然是C,前几个是0,1,2,3,5,8,13,21 第11题选B,计算量是2^35,现在计算机的主频是2^30,所以差不多是几秒的事 第12题是B,显然有n=4N1+3N3+2N2+N1+1=N4+n3+n2+n1,所以N0=82,不解释 第13题果断是D,这个老题目了,不解释 第14题是C,二分查找嘛,大家都会,不解释 第15题是Fulkerson算法,算出来是46,每一次选一个增广路径即可,直接选不出来为止 第16题选185,显然,它给了120块钱(楼主二了)和一个物品(值65元),所以亏损185 这个题目楼主是这样想的,结果二了 第17题是2,不解释Fermart小定理,2^6 mod 7= 1,所以2^100=2^4=16=2 mod 7 第18题,我觉得是B,不知道对不对,这个不会 第19题,算得不太精细,选了A,不确定。 第20题C,概率与级数运算,不解释 第21题,果断B,D,malloc,new申请到的是Virtual Memory,不过,windows里面还真可以申请到物理内存,用的是VirtualAllocEx API即可

第22题B,C肯定对,D不确定,感觉是对的,不过,没敢选 第23题,其实就是解n^14<10^16,解出n<= 13,所以选14,15(我是推出n<10^(8/7)然后算出n<=13 第24题,D,因为选出第一个是白的,所以位于A的概率是2/3 第25,不可能,需要2.8*10^8 bit,而蓝牙只能传2.4*10^7bit所以一帧需要0.2S 第26题(mnlogn)不解释,归并而已 第27题显然是17分钟 第28,错两个地方1,没考虑只有一个数,2,可能死循环(给你数组0,2,3让查找1)楼主两个都想到了,写的时候忘记了写1,悲剧 第29题,果断SkipList,地球人懂的O(PLogpN)

阿里巴巴品牌数据银行分析师考试题库答案

答案在最后一页 1.人群放大功能的放大倍数最高不超过50倍,放大后的最大值不超过1000万,这种 说法正确吗? 2.如有有授权店铺,品牌可以圈选浏览店铺指定商品大于2天的人群。这种说法正确 吗? 3.品牌希望在数据银行收割预售期高意向人群,应该在哪里操作? 4.数据银行自定义人群创建完成后,当天即可查看分析报告,这种说法正确吗? 5.天猫超市是数据银行现有的数据应用通道,这种说法正确吗 6.支持接通了天猫超市触达通道,可以进行天猫超市的个性化翻牌,试用派发,优惠 券等消费者运营触达,人群包的人数要求大于等于1万,这种说法正确吗 7.365天内购买过品牌商品大于等于2次的消费者是忠诚消费者,这种说法正确吗 8.数据银行中关于会员的定义,如果是会员通品牌商,则会员定义是:“已领卡的消费 者;如果是非会员通品牌商,则会员的定义是:交易笔数或者交易金额已达到品牌商自己设置的门槛的消费者”这种说法正确吗 9.某男装品牌想对不同品类的老客发不同的短信内容,需要的操作是:先在数据银行 圈选出不同品类的老客,然后讲各老客人群同步至CRM,最后在CRM端将不同短信内容和人群进行设定,这种说法正确吗? 10.权限分组之间创建的自定义人群、营销活动人群、上传人群以及数据应用人物相互 隔离,且支持分组之间自定义人群的相互授权,这种说法正确吗? 11.月均消费金额的定义是什么? 12.全部创建的营销活动人群都可以查看报告。这种说法正确吗? 13.新零售版里面,人群应用通道默认包含BrandHub、达摩盘、istoreCRM、地动仪、

支付宝、Unidesk.这种说法正确吗? 14.人群透视中月均消费金额属性,是最近一年内消费者在淘宝天猫上的月均消费金额。 这种说法正确吗? 15.品牌-搜索中,搜索行为是从全网拉取XX关键词的人群,产出搜索改关键词且是该 品牌的人群。这种说法正确吗? 16.某品牌怀疑自己的会员活跃度在下滑,希望从数据银行中得到数据论证,我们可以 直接查看消费者分析模块看板中的会员活跃率这个指标。这种说法正确吗? 17.数据融合中,人群上传后能够匹配到的范围是哪个? 18.新增上传人群中,上传文件的匹配方式是什么? 19.月报中统计的消费者总量是相应时间段内覆盖的消费者总数,因此,某个消费者既 存在于A里面,又存在于P里面,这种说法正确吗? 20.自定义人群设置更新的周期最长不超过多少天? 21.对比同行业TOP5品牌时,品牌能了解到TOP5品牌优哪些。这种说法正确吗? 22.假设某个人群的总数为100万,最近15Ian踩过“阿里妈妈”触点的有30万人, 其中最近15天踩过“钻石展位”触点的有10万人,那么该人群“钻石展位触点” 的占比为多少? 23.FAST包括活跃消费者、关系周加深率、会员数和活跃会员数量。这种说法正确吗? 24.品牌在圈选双11期间品牌购买人群的新增数量时,需要同时差去品牌双11前PL 人群,这种说法正确吗? 25.目前数据银行接通了地动仪线下通道,暂时只开放到零售角色使用。这种说法正确 吗? 26.自定义分析中,全链路状态AIPL一般默认能取到的最长时间限为()

阿里2014年秋招研发试题_附答案

阿里巴巴集团2014校园招聘笔试题 (9月22北京) (答案仅是个人见解,欢迎补充更正,谢谢) 第一部分单选题(前10题,每题2分;后10题,每题3分。选对得满分,选错倒扣1分,不选得0分) 1、一次内存访问,SSD硬盘访问和SATA硬盘随机访问的时间分别是() A、几微秒,几毫秒,几十毫秒 B、几十纳秒,几十微秒,几十毫秒 C、几十纳秒,几十微秒,几十毫秒 D、几微秒,几十微秒,几十毫秒 2、8进制数256,转化成7进制数是(B) A、356 B、336 C、338 D、346 3、某网络的IP地址空间为192.168.5.0/24,采用定长子网划分,子网掩码为255.255.255.248,则该网络的最大子网个数、每个子网内最大可分配地址个数各位(C) A、8,32 B、32,8 C、32,6 D、8,30 4、以下关于链式存储结构说法错误的是(A) A、查找节点时链式存储比顺序存储快 B、每个节点是由数据域和指针域组成 C、比顺序存储结构的存储密度小 D、逻辑上不相邻的节点物理上可能相邻 5、假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[1][2]的值为(A) A、6 B、4 C、2 D、8 6、下面函数的功能是(C) int fun (char *s) { char *p=s; while(*p++); return p-s-1; }

A、计算字符串的位(bit)数 B、复制一个字符串 C、求字符串的长度 D、求字符串存放的位置 7、判断有向图是否存在回路,利用(A)方法最佳 A、拓扑排序 B、求最短路径 C、求关键路径 D、广度优先遍历 8、依次读入数据元素序列{a,b,c,d,e,f,g}进栈,元素进栈或出栈顺序是未知的,下列序列中,不可能成为栈空时弹出的元素构成序列的有(D) A、{d,e,c,f,b,g,a} B、{c,d,b,e,f,a,g} C、{e,f,d,g,c,b,a} D、{f,e,g,d,a,c,b} 9、下列有关图的遍历说法中,不正确的是(C) A、有向图和无向图都可以进行遍历操作 B、基本遍历算法两种:深度遍历和广度遍历 C、图的遍历必须用递归实现 D、图的遍历算法可以执行在有回路的图中 10、在16位机器上跑下列foo函数的结果是(B) void foo() { int i = 65536; cout << i <<”,”; i = 65535; cout << i; } A、-1,65535 B、0,-1 C、-1,-1 D、0,65535 11、有一段年代久远的C++代码,内部逻辑复杂,现在需要利用其实现一个新的需求,假定有以下可行的方案,应当优先选择(D) A、修改老代码的接口,满足新的需求 B、将老代码抛弃,自己重新实现类似的逻辑 C、修改老代码的内部逻辑,满足新的需求 D、在这段代码之外写一段代码,调用该代码的一些模块,完成新功能需求 12、在5个页框上使用LRU页面替换算法,当页框初始为空时,引用序列为0、1、7、8、6、2、3、7、2、9、8、1、0、2,系统将发生(C)次缺页

阿里巴巴数据分析

图一:整体变化时间序列数据图 从图中可以看出: 阿里巴巴的总资产、流动资产、非流动资产2012年~2015年呈现出了明显同步增长趋势;股东权益2012年~2013年减少,2013年~2015年开始大幅增长;营业收入、营业成本、毛利润2012年~2015年增长基本保持稳定,稳中有涨。整体分析: 从资产构成来看,流动资产所占总资产的比重在逐年下降,止2015年为55.63%,而构成流动资产的现金部分占总资产比重则在2014年~2015年开始上涨达到49.33%。通过分析说明尽管阿里巴巴的流动资产占总资产比重下降,但仍高于非流动资产所占比重,在合理范围内。总资产及现金较大幅度的增加表明企业占有的经济资源增加,经营规模扩大,资产流动性增强。

从股东权益变化来看2012年~2013年随着资产的增长,股东权益却呈下降趋势,说明资产的增长主要是来源于负债的增加,而2013年~2015年股东权益的大幅增长可以说明阿里巴巴意识到高负债带来了高风险,转而采取了较稳健的财务政策。 图二:偿债能力时间序列数据图 从图中可以看出: 2012年~2013年资产负债率呈现大幅增长,而从2013年~2015年该比率发生扭转开始平稳下降。 偿债能力分析: 从资产负债率变化的角度来看,该比率在2012年-2013年大幅增加,这可能导致债权人的权益无法得到保障,因为资产负债率越高,说明企业的长期偿债能力就越弱,债权人的保证程度就越弱。而该比率从2013年~2015年的平稳下降说明企业也意识到高债务的严重性并及时采取了相应的行动,进行资产结构优化,从而降低负债带来的企业风险,提高了债权人的保证程度。

阿里巴巴校园招聘笔试题及参考答案

阿里巴巴的Oracle DBA笔试题及参考答案- 数据库基本概念类 1:pctused and pctfree 表示什么含义有什么作用 pctused与pctfree控制数据块是否出现在freelist中, pctfree控制数据块中保留用于update的空间,当数据块中的free space小于pctfree设置的空间时, 该数据块从freelist中去掉,当块由于dml操作free space大于pct_used设置的空间时,该数据库块将 被添加在freelist链表中。 2:简单描述table / segment / extent / block之间的关系 table创建时,默认创建了一个data segment, 每个data segment含有min extents指定的extents数, 每个extent据据表空间的存储参数分配一定数量的blocks 3:描述tablespace和datafile之间的关系 一个tablespace可以有一个或多个datafile,每个datafile只能在一个tablespace内, table中的数据,通过hash算法分布在tablespace中的各个datafile中, tablespace是逻辑上的概念,datafile则在物理上储存了数据库的种种对象。 4:本地管理表空间和字典管理表空间的特点,ASSM有什么特点 本地管理表空间(Locally Managed Tablespace简称LMT) 8i以后出现的一种新的表空间的管理模式,通过位图来管理表空间的空间使用。 字典管理表空间(Dictionary-Managed Tablespace简称DMT) 8i以前包括以后都还可以使用的一种表空间管理模式,通过数据字典管理表空间的空间使用。 动段空间管理(ASSM), 它首次出现在Oracle920里有了ASSM,链接列表freelist被位图所取代,它是一个二进制的数组, 能够迅速有效地管理存储扩展和剩余区块(free block),因此能够改善分段存储本质,ASSM表空间上创建的段还有另外一个称呼叫Bitmap Managed Segments(BMB 段)。 5:回滚段的作用是什么 事务回滚:当事务修改表中数据的时候,该数据修改前的值(即前影像)会存放在回滚段中, 当用户回滚事务(ROLLBACK)时,ORACLE将会利用回滚段中的数据前影像来将修改的数据恢复到原来的值。 事务恢复:当事务正在处理的时候,例程失败,回滚段的信息保存在undo表空间中,ORACLE将在下次打开数据库时利用回滚来恢复未提交的数据。 读一致性:当一个会话正在修改数据时,其他的会话将看不到该会话未提交的修改。 当一个语句正在执行时,该语句将看不到从该语句开始执行后的未提交的修改(语句级读一致性) 当ORACLE执行Select语句时,ORACLE依照当前的系统改变号(SYSTEM CHANGE NUMBER-SCN) 来保证任何前于当前SCN的未提交的改变不被该语句处理。可以想象:当一个长时间的查询正在执行时, 若其他会话改变了该查询要查询的某个数据块,ORACLE将利用回滚段的数据前影像来构造一个读一致性视图。 6:日志的作用是什么

相关文档
相关文档 最新文档