2017滴滴出行校招
正在找工作,互联网也不够景气,各种缩招,做笔试做的心塞。去参加某公司的宣讲会,主办方准备了一个教室,结果来了至少5教室的人(学计算机的人真多啊
),没我的岗位去的目的是给同学助攻,结果卷纸不够。想着下午还有滴滴出行的笔试题,就先回来了,开电脑发现已经开考快一个小时了,就随便写了几道交了。=.= 又特么打酱油了。应聘的是算法岗,都是统计、机器学习方面的题目,这个我喜欢。印象中的几道题写下来,下面的是我从我的为知笔记拷贝过来的,为知笔记可能和博客园解析markdown效果不太一样,拷贝过来后格式有点乱。
选择题##
- 一个不透明的箱子中有红、黄、白、蓝、绿五种小球,每个人从篮子中取出2个小球,问至少需要多少个人抽,才能保证抽到重复颜色的小球(
16
)
一个人抽两个小球的结果一共有15中可能颜色相同的5个,颜色不同的有C(5,2)
在第16个人抽的时候出现重复,所以是16人
- 35!末尾有多少个零?
10=5*2
,所以找0的个数只用找有多少个5的倍数2要比5多
,所以有5,10,15,20,25,30,35
,总共7个,由于25=5*5
多出一个,所以共有8个
- 5个红球,10个黄球,15个蓝球,随机拿一个(不放回),则红色球先被拿完的概率
7/12
红球先被拿完的情况有红黄蓝
,红蓝黄
分别讨论- 红黄蓝
10个黄球,总共11个空,红球先被拿完就是用红球去插
前10个空,插入一个就多个空,总共有10*11*12*13*14
种情况,由于红球是无差别的,需要除以A(5,5)
,即得到C(14,5)
,然后在用类似方法,把红黄
插入蓝色即得到C(29,15)
- 红蓝黄
15个蓝色球,插入15个空位,有15*16*17*18*19
,即得到C(19,5)
,红蓝
插入到红色球中即得到C(29,20)
- 总体情况
A(30,30)/A(5,5)A(15,15)A(10,10)
注意 A(10,10) = A(10,6)*A(5,5)
- 红黄蓝
- 如图三个正方形并列,求x,y,z加起来多少度(
90
)
tanz = 1,z=45°,tany = 1/2,tanx = 1/3 tan(x+y) = (1/2+1/3)/(1-1/2*1/3)=5/5=1 - 一根长度为100米长的绳子,需要被切割成10000根长度为1cm的小段,若一次可以同时切割多根绳子,请问最少需要切割(
14
)次
一刀切2段 log22 ......,2n段需要N刀。213 < 10000 <214 需要14刀。 - 2016欧洲杯小组赛,分4个小组进行,每个小组由6支球队组成,每支球队都与同组对手比赛一场,小组共多少场比赛(
60
)
(5+4+3+2+1)*4 = 60 - 假如技术团队有50人,其中会C语言的有36人,会JAVA的有44人,会GO语言的有32人,同时会三种语言的至少有多少人(
B
)?
A.20 B.12 C.10 D.8
我不会,我蒙的B 12人,我的方法是这样。
假设C 和 JAVA的人构成了全集,为什么选这两个?答:人多。44 + 36 - X =50
,X=30,下图
三种语言都会的人就在这30人里面,32 - 6 - 14 = 12
编程题##
- 题目描述
给定一个十进制数M,以及需要转换的进制数N。将十进制数M转化为N进制数
我的代码,可能存在bugpublic static void solution(int a,int n) { Stack<String> s = new Stack<String>(); while(a != 0) { int remider = a % n; if(n > 10 && remider > 10) { int m = remider -10 + 97; //'a' s.push((char)m + ""); } else { s.push(remider + ""); } a /= n; } while(!s.isEmpty()) { System.out.print(s.pop()); } }
- 题目描述
给定一个有n个正整数的数组A和一个整数sum,求选择数组A中部分数字和为sum的方案数。 当两种选择方案有一个数字的下标不一样,我们就认为是不同的组成方案
输入例子
5 15 5 5 10 2 3
输出例子
4
解答
这是这么思考这个问题的:找出所有的子集,统计满足子集的个数,可以利用我前面的一篇文章求集合的子集总结及案例 解答。略微不同的是下标不一样,认为是不同的组成方案
,所以就不能用set存储满足要求的子集了。代码在这里