阿里巴巴2015算法工程师实习生笔试卷

合集下载

2015年阿里巴巴校园招聘笔试题目

2015年阿里巴巴校园招聘笔试题目

2015年阿里巴巴校园招聘笔试题目笔试时间为2014年8月29日,均为网上答题。

第一部分为单选题,共20题,要在40分钟内完成。

每个人的选择题都不一样,应该是后台有题库,每个人的试卷都是随机生成的。

第二部分为附加题,一般为1道问答题,2道编程题。

通过算法生成的随机数是“伪随机”的,也就是说,在设定好第一个数之后,后面的数字的序列是确定的,并且经过一个非常大的循环会回到第一个数的状态,然后周而复始。

显然,摇号、抽奖的程序是不能通过伪随机数来实现的。

现实中常常基于某种热噪声来实现真正的随机数。

假定某热噪声是标准正态分布,那么能否将它转换成区间上的均匀分布______?忽略测量和计算误差,可以转换为区间上的均匀分布。

无法转换为区间上的均匀分布。

信息不足,无法判断。

借助伪随机数生成算法可以转换为区间上的均匀分布。

仅仅靠伪随机数生成算法,就可以生成区间上的均匀分布以上说法都不对。

在一个童话世界里,任意两个人之间要么是朋友关系,要么是敌人关系,不存在其他关系及没有关系的情况。

并且,如果A和B是朋友关系,B和c是朋友关系,那么A和c必然是朋友关系。

那么关于这个童话世界中的人群的说法错误的是:______?可能只有1个人群,这个人群内部是朋友关系。

可能有2个人群,人群内部是朋友关系,人群之间是敌人关系。

可能有3个及以上个人群,人群内部是朋友关系,人群之间是敌人关系。

如果存在多个人群,并且人群内部是朋友关系,人群之间是敌人关系,那么这些人群必然是差不多大小的。

选项B中的情况可以是其中一个人群只有一个人,另外一个人群可以由很多人。

这样一个世界里朋友关系是比较不容易发生变化的。

12321能被写成______种两个质数相加的形式。

12345在小端序的机器中,如果unionX{intx;chary[4];};如果:Xa;=0x11223344;//16进制则:______[0]=11[1]=11[2]=11[3]=11[0]=22XX『』[3]=22使用一辆卡车运输n块单块1TB装满数据的硬盘,以时速80km/h行驶1000km 将数据运送到目的地;卡车至少运送______块硬盘才能使传输速率超1000Gbps。

阿里暑期实习笔试题

阿里暑期实习笔试题

阿⾥暑期实习笔试题阿⾥暑期实习笔试题阿⾥暑期实习的笔试,3⽉6⽇的第⼀场据说⽐较难,两道 leetcode hard题。

3.9 更新找到问题了,问题出在auto&& [stop, step] = q.front(); q.pop();这两句上,我们使⽤的是⼀个引⽤,但是后来这个元素被 pop 释放掉了,所以会报内存错误。

使⽤auto& [stop, step]也会出错,因为也是引⽤类型;只有使⽤auto [stop, step]做拷贝赋值才不会引起内存错误。

第⼀题感觉思路还是很直观的,注意数据的溢出问题就⾏了,1E9 * 2不会溢出,1E9 * 3就会溢出了。

我这⾥没有把数据类型提升到 int64_t,不然的话可以只做⼀次取余,毕竟 int64_t 之下1E9 * 5也溢出不了。

题⽬描述You have a grid of size n x 3 and you want to paint each cell of the grid with exactly one of the three colors: Red, Yellow, or Green while making sure that no two adjacent cells have the same color (i.e., no two cells that share vertical or horizontal sides have the same color). Given n the number of rows of the grid, return the number of ways you can paint this grid. As the answer may grow large, the answer must be computed modulo 109 + 7.Example 1:Input: n = 1Output: 12Explanation: There are 12 possible way to paint the grid as shown.Example 2:Input: n = 2Output: 54Example 3:Input: n = 3Output: 246Example 4:Input: n = 7Output: 106494Example 5:Input: n = 5000Output: 30228214Constraints:n == grid.lengthgrid[i].length == 31 <= n <= 5000解题思路这是⼀道显⽽易见的 DP 题⽬,下⼀层的涂⾊⽅案仅依赖于上⼀层,有点类似于那道矩形覆盖题:⽤2x1的⼩矩形⽆重叠地覆盖2xn的⼤矩形(斐波那契数列嘛)。

2015阿里校招-算法工程师笔试题

2015阿里校招-算法工程师笔试题

注意:
图中给出的不是答案!图中给出的不是答案!图中给出的不是答案!
另外,阿里的题库很大……
附加题:
第一题,编程:
已知一个完全还原的魔方,输入操作代码(例如U代表将魔方顶层顺时针转90度等,详见魔方攻略),要求输出经过多次操作后魔方各个面的颜色。

例如:输入LR,输出执行一次L操作一次R操作后各面的颜色。

要求使用C或JAVA编程。

第二题,简答:
二分类问题,若数据本身的分布不平衡(A类特别多而B类特别少),
a.此时用精确性(预测正确/全体样本)衡量模型的分类情况合适吗?一般改采用哪些指标?简述各指标的含义
b.如何解决不平衡数据的分类问题?对于SVM,如何调整参数C防止出现过拟合?对于其他模型一般如何防止模型产生过拟合?。

阿里巴巴2015年笔试题

阿里巴巴2015年笔试题

有一个装过食盐的瓶子,容积是w,在食盐用完之后,还有一些食盐粉末(体积可以忽略)残留在瓶子壁上。

现在要把该瓶子改装糖,给你u体积的纯净水,用来清洗该瓶子。

在每次清洗之后,瓶子里会残留至少v体积的水(食盐溶液,可以忽略盐的体积)。

假设w>u>v,请问下述哪种方式使用这些纯净水,能把瓶子洗得最干净______?∙把所有的纯净水全部倒入瓶子,然后把水倒掉。

∙将纯净水平均分为两份,用每一份清水洗一遍瓶子。

∙每次注入体积为v的纯净水清洗瓶子,直到纯净水用尽。

∙每次注入体积为2v的纯净水清洗瓶子,直到纯净水用尽。

∙将用过的水重新注入瓶子,多次清洗。

∙以上方法清洗效果相同。

int main(){ fork()||fork();} 共创建几个进程:______。

∙ 1∙ 2∙ 3∙ 4∙ 5∙ 6以下属性中,______不是m阶B树特性。

∙根节点至少2子女节点∙非根节点包含的子女数j满足:┌m/2┐ - 1 <= j <= m - 1∙除根结点以外的所有内部结点度数为存储关键字总数加2 D.常用于计算机磁盘文件组织∙叶节点均位于同一层∙B+也常用于计算机磁盘文件组织使用一辆卡车运输n块单块1TB装满数据的硬盘,以时速80km/h行驶1000km 将数据运送到目的地;卡车至少运送______块硬盘才能使传输速率超1000Gbps。

∙2000∙3000∙4000∙5000∙6000∙700012321能被写成______种两个质数相加的形式。

∙0∙ 1∙ 2∙ 3∙ 4∙ 5在以下操作中,数组比线性表速度更快的是______。

∙原地逆序∙头部插入∙返回中间节点∙返回中间节点∙返回头部节点∙选择随机节点程序出错在什么阶段______?int main(void){cout<< “welcome to taobao"<<endl;}∙预处理阶段出错∙编译阶段出错∙汇编阶段出错∙链接阶段出错∙运行阶段出错∙程序运行正常以下排序方式,平均时间复杂度最差的排序是______。

最新阿里巴巴实习生笔试题(含答案)

最新阿里巴巴实习生笔试题(含答案)

答案:D内联函数:Tip:只有当函数只有10 行甚至更少时才将其定义为内联函数.定义: 当函数被声明为内联函数之后, 编译器会将其内联展开, 而不是按通常的函数调用机制进行调用.优点: 当函数体比较小的时候, 内联该函数可以令目标代码更加高效. 对于存取函数以及其它函数体比较短, 性能关键的函数, 鼓励使用内联.缺点: 滥用内联将导致程序变慢. 内联可能使目标代码量或增或减, 这取决于内联函数的大小. 内联非常短小的存取函数通常会减少代码大小, 但内联一个相当大的函数将戏剧性的增加代码大小. 现代处理器由于更好的利用了指令缓存, 小巧的代码往往执行更快。

结论: 一个较为合理的经验准则是, 不要内联超过10 行的函数. 谨慎对待析构函数, 析构函数往往比其表面看起来要更长, 因为有隐含的成员和基类析构函数被调用!另一个实用的经验准则: 内联那些包含循环或switch 语句的函数常常是得不偿失(除非在大多数情况下, 这些循环或switch 语句从不被执行).注意:有些函数即使声明为内联的也不一定会被编译器内联, 这点很重要; 比如虚函数和递归函数就不会被正常内联. 通常, 递归函数不应该声明成内联函数.(递归调用堆栈的展开并不像循环那么简单, 比如递归层数在编译时可能是未知的, 大多数编译器都不支持内联递归函数). 虚函数内联的主要原因则是想把它的函数体放在类定义内, 为了图个方便, 抑或是当作文档描述其行为, 比如精短的存取函数.-inl.h文件:Tip:复杂的内联函数的定义, 应放在后缀名为-inl.h 的头文件中.内联函数的定义必须放在头文件中, 编译器才能在调用点内联展开定义. 然而, 实现代码理论上应该放在 .cc 文件中, 我们不希望 .h 文件中有太多实现代码, 除非在可读性和性能上有明显优势.如果内联函数的定义比较短小, 逻辑比较简单, 实现代码放在 .h 文件里没有任何问题. 比如, 存取函数的实现理所当然都应该放在类定义内. 出于编写者和调用者的方便, 较复杂的内联函数也可以放到 .h 文件中, 如果你觉得这样会使头文件显得笨重, 也可以把它萃取到单独的-inl.h 中. 这样把实现和类定义分离开来, 当需要时包含对应的-inl.h 即可。

阿里2015研发工程师笔试题

阿里2015研发工程师笔试题
8、若干个等待访问磁盘者依次要访问的磁道为 19,43,40,4,79,11,76,当前磁头 位于 40 号柱面,若用最短寻道时间优先磁盘调度算法,则访问序列为?
A. 19,43,40,4,79,11,76 B. 40,43,19,11,4,76,79 C. 40,43,76,79,19,11,4 D. 40,43,76,79,4,11,19 E. 40,43,76,79,11,4,19 F. 40,19,11,4,79,76,43
6、设 m 和 n 都是 int 类型,那么以下 for 循环语句,__ for(m=0,n=-1;n=0;m++,n++) n++; A.循环体一次也不执行 B.循环体执行一次 C.是无限循环 D.有限次循环 E.循环结束判断条件不合法 F.运行出错 【知识点】循环,=和==区别 n=0,条件永远为假,所以循环体一次也不会执行 【扩展】 若改为 for(m=0,n=-1;n>0;m++,n++)n++;循环体应该会执行有限次,存在溢出 的问题。 7、计算三个稠密矩阵 A、B、C 的乘积 ABC,假定三个矩阵的尺寸分别为 m*n, n*p, p*q,且 m<n<p<q,以下计算顺序效率最高的是:______?
共享冗余数据提高访问效率
【知识点】程序调优常见的途径。可参考 /articles/7490.html
I/O 密集型问题一般是硬件层面的问题,比如硬盘,它的 I/O 就摆在那 里,无论你在怎么多线程,瓶颈就在硬盘那,所以 B 的说法是不可行 的。
对于“I/O 密集型”的应用程序可以采用 I/O 效率较高的 SCSI 硬盘,或者 采用集群的方式。

阿里巴巴笔试题及答案

阿里巴巴笔试题及答案

阿里巴巴笔试题及答案篇一:阿里巴巴oracle-dba 笔试题及答案】txt>1: 列举几种表连接方式hash join/merge join/nest loop(cluster join)/index join2: 不借助第三方工具,怎样查看sql 的执行计划set autot onexplain plan set statement_id = item_id for sql;select * from table(dbms_xplan.display);在optimizer_mode=choose 时, 如果表有统计信息(分区表外) ,优化器将选择cbo, 否则选rbo 。

rbo 遵循简单的分级方法学, 使用15 种级别要点,当接收到查询,优化器将评估使用到的要点数目,然后选择最佳级别(最少的数量)的执行路径来运行查询。

cbo 尝试找到最低成本的访问数据的方法, 为了最大的吞吐量或最快的初始响应时间,计算使用不同的执行计划的成本,并选择成本最低的一个,关于表的数据内容的统计被用于确定执行计划。

4: 如何定位重要(消耗资源多)的sql select sql_textfrom v$sqlwhere disk_reads 1000 or (executions 0 and buffer_gets/executions 30000); 5: 如何跟踪某个session 的sql execdbms_system.set_sql_trace_in_session(sid,serial#,sql_trace); selectsid,serial# from v$session where sid = (select sid from v$mystat where rownum = 1);exec dbms_system.set_ev(sid,serial#,event_10046,level_12,);6:sql 调整最关注的是什么查看该sql 的response time(db block gets/consistent gets/physicalreads/sorts (disk))7: 说说你对索引的认识(索引的结构、对dml 影响、为什么提高查询性能) b-tree index/bitmap index/function index/patitional index(local/global) 索引通常能提高select/update/delete 的性能, 会降低insert 的速度, 8: 使用索引查询一定能提高查询的性能吗?为什么索引就是为了提高查询性能而存在的,如果在查询中索引没有提高性能, 只能说是用错了索引,或者讲是场合不同9: 绑定变量是什么?绑定变量有什么优缺点?绑定变量是相对文本变量来讲的,所谓文本变量是指在sql 直接书写查询条件,这样的sql 在不同条件下需要反复解析,绑定变量是指使用变量来代替直接书写条件,查询bind value 在运行时传递,然后绑定执行。

阿里2015实习生-客户端笔试题目解析

阿里2015实习生-客户端笔试题目解析

1.在HTTP GET/POST中一般都需要对参数进行base64编码2.在OSX中的.plist文件中的<data>数据也是Base64编码的PreOrder Travesal•如果是完全树的话,就是2^count - 1= 511 => count = 9 ,完全树是9层,然后加上一个小尾巴,就是10层。

•接着,我们考虑最差的情况,就是树退化为链表,这时count = 513;16 - a^2 + 6a > 0a^2 - 6a -16 <0(a + 2)(a - 8) >0so , a>8当 a < 0 , no way.so , a>811.一个电动模型,每一组电池能让其行驶8分钟,一个充电器能同时给两组电池充电,一组充满需要15分钟,至少准备_组电池,可以让模型行驶完立即换电池行驶不用等待。

解答:两组肯定不够的,假设有3组充满的电池,我们用笔划一划int use = 8int charge[2] = 0,0use = 0charge[2] = 0,0;use = 8charge = 15,0use = 0charge = 7,0;use = 8charge = 7,15;use = 0;charge = 15, 8;所以3个是可以的。

12.对于下面的代码,正确的是?char* s1 = "Hello world";char s2[] = "Hello world";s1[2] = 'E'; //1s2[2] = 'E'; //2*(s1 + 2) = 'E'; //3*(s2 + 2) = 'E'; //4解答:s1是char*类型,它指向常量字符串,而常量早已经在编译的时候就写入程序中了,是不可改变的; s2是char[]类型,它指向数组的第一位;我们分开解答,先把情况1转换为单独的代码void dosome(void){char* s1 = "hello world";s1[2] = 'E';}系统报错Bus error: 10我们拿出Hopper Disassembler这个神器,把二进制文件反编译后是function dosome() {var_m8 = "hello world";rax = var_m8;//int8_t 就是 char*(int8_t *)(rax + 0x2) = 0x45;return rax;}通过反编译,我们知道了s1[2] = 'E' 实际上就是先强制转换,然后所指向的值赋值为0x45 的意思。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。


牛客网-中国最大IT笔试/面试题库
下载文档,点击相应题目,直接查看答案
18. 以下是一个有向图,我们从节点B开始进行深度优先遍历(DFS),那么以下5个序列中,所有正确的DFS序 列是____。
1、BADECF 2、BADEFC 3、BCAFDE 4、BCFDEA 5、BFDECA

牛客网-中国最大IT笔试/面试题库
下载文档,点击相应题目,直接查看答案
阿里巴巴2015算法工程师实习生笔试卷
一. 单项选择题
1. 用十进制计算30!(30的阶乘),将结果转换成3进制进行表示的话,该进制下的结果末尾会有____个0。 A6 B8 C 10 D 12 E 14 F 16

牛客网-中国最大IT笔试/面试题库
下载文档,点击相应题目,直接查看答案
5. 如下SQL语句中,____可能返回null值。 (1) select count(*) from t1; (2) select max(col1) from t1; (3) select concat('max=',max(col1)) from t1; A (1)可能,(2)和(3)不可能 B (2)可能,(1)和(3)不可能 C (3)可能,(1)和(2)不可能 D (1)不可能,(2)和(3)可能 E 都不可能 F 都可能
14. 设二叉树结点的先根序列、中根序列和后根序列中,所有叶子结点的先后顺序____。 A 三者相同 B 只有先序和中序相同,与后序不同 C 只有中序和后序相同,与先序不同 D 只有先序和后序相同,与中序不同 E 视树的情况而定 F 三者都不相同
15. 将整数序列(7-2-4-6-3-1-5)按所示顺序构建一棵二叉排序树a(亦称二叉搜索树),之后将整数8按照二 叉排序树规则插入树a中,请问插入之后的树a中序遍历结果是____。 A 1-2-3-4-5-6-7-8 B 7-2-1-4-3-6-5-8 C 1-3-5-2-4-6-7-8 D 1-3-5-6-4-2-8-7 E 7-2-8-1-4-3-6-5 F 5-6-3-4-1-2-7-8
6. 以下关于STL的描述中,____是错的。 A STL容器是线程不安全的 B 当容量不够时,vector内部内存扩展方式是翻倍 C std::sort是稳定排序 D std::bitset不是一个STL容器 E std::stack默认是用deque实现的 F std::string中可以存储多个’\0’字符
#include<iostream> using namespace std; class animal { protected:
int age; public:
virtual void print_age(void) = 0; }; class dog : public animal { public:
printf("%d\n", sizeof(array)); } int main () {
int32_t myArray[10]; printf("%d ", sizeof(myArray)); print_size(myArray); }
A 20 4 B 40 4 C 80 4 D 40 8 E 80 8 F 以上均不正确
A2
B3
C4
D5
E6
F7
13. 给定一个整数sum,从有N个无序元素的数组中寻找元素a、b、c、d,使得 a+b+c+d =sum,最快的平均 时间复杂度是____。
A O(N^2)

牛客网-中国最大IT笔试/面试题库
下载文档,点击相应题目,直接查看答案
B O(log N) C O(N) D O(N^3) E O(N^2LogN) F O(N^4)
16. 下列各项技术中,⺫的与程序的容错(fault-tolerance)最不相关的是____。 A fail fast B graceful degradation C backup D sandbox E checkpoint F watchdo
17. 对于192.168.0.0到192.168.0.255这个⺴络来说,以下说法中正确的是____。 A ⺴段内可用来作为主机IP的范围是:192.168.0.0到192.168.0.255 B Network IP是192.168.0.255 C Broadcast IP是192.168.0.0 D ⺴段内的主机可以通过⺴卡对⺴卡传递数据 E 192.168.0.1和192.168.0.2的主机需要使用Router传递数据包 F 是class B等级
} }; class cat: public animal { public:
cat() {this -> age = 1;} ~cat() { } virtual void print_age(void) {
cout<<"Miao, my age = "<<this -> age<<endl; } }; int main(void) { cat kitty; dog jd; animal * pa; int * p = (int *)(&kitty); int * q = (int *)(&jd); p[0] = q[0]; pa = &kitty; pa -> print_age(); return 0; }
9. 下面代码在64位Linux系统编译执行,输出结果是____。

牛客网-中国最大IT笔试/面试题库
下载文档,点击相应题目,直接查看答案
#include <stdint.h> #include <stdio.h> void print_size(int32_t array[10]){
10. 假设某棵二叉查找树的所有键均为1到10的整数,现在我们要查找5。下面____不可能是键的检查序列。 A 10,9,8,7,6,5 B 2,8,6,3,7,4,5 C 1,2,9,3,8,7,4,6,5 D 2,3,10,4,8,5 E 4,9,8,7,5 F 以上均正确
11. 以下程序在32位机器上运行输出是____。
2. 小赵和小钱二人分别从寝室和图书馆同时出发,相向而行。过了一段时间后二人在中途相遇,小赵继续向 图书馆前进,此时:若小钱继续向寝室前进,则当小赵到达图书馆时,小钱离寝室还有600米;若小钱立即折 返向图书馆前进,则当小赵到达图书馆是,小钱离图书馆还有150米。那么图书馆与寝室间的距离是____。 A 1300m B 1250m C 800m D 1050m E 1100m F 900m
7. 有8只球队,采用抽签的方式随机配对,组成4场比赛。假设其中有4只强队,那么出现强强对话 (任意两只强队 相遇)的概率是____。 A 1/3 B 3/7 C 1/2 D 13/21 E 27/35 F 31/35
8. 两个市区C1和C2,其人口比率是1:3,从今年的患病统计来说,C1市区由于污染严重,患癌的概率是 0.1%,而C2市的患癌概率是0.02%,现在医院接收到一位患癌病人,他是C1市区来的概率是____。 A 62.5% B 25% C 75% D 77.5% E 50% F 70%
dog() {this -> age = 2;} ~dog() { } virtual void print_age(void) {
cout<<"Wang, my age = "<<this -> age<<endl;

牛客网-中国最大IT笔试/面试题库
下载文档,点击相应题目,直接查看答案
3. 某开发团队有6位开发同学,需参加5个项⺫, 每个项⺫都有人做 ,每位同学需要恰好参加1个项⺫,那么总共 有____ 种不同的分配方案 A 7200 B 3600 C 2700 D 1800 E 900 F 30
4. 下列选项中,识别模式与其他不一样的是____。 A 用户年龄分布判断:少年、⻘年、中年、老年 B 医生给病人诊断发病类型 C 投递员分拣信件 D 消费者类型判断:高消费、一般消息、低消费 E 出行方式判断:步行、骑⻋、坐⻋ F 商家对商品分级
A 245 B 24 C 13 D 123 E 12345 F 12
19. 已知int a[]={1,2,3,4,5};int*p[]={a,a+1,a+2,a+3};int **q=p;表达式*(p[0]+1)+**(q+2)的值是____。 A5 B6 C7 D8 E4 F9
20. 设x、y、t均为int型变量,则执行语句:t=3; x=y=2; t=x++||++y; 后,变量t和y的值分别为____。 A t=1 y=2 B t=1 y=3 C t=2 y=2 D t=2 y=3 E t=3 y=2 F t=3 y=3
A Wang, my age = 2
B Wang, mபைடு நூலகம் age = 1
C Miao, my age = 2
D Miao, my age = 1 E 程序编译报错 F 程序运行报错
12. A,B,C三位同学都是很聪明的同学,面试官给他们背上依次贴上了数字2,4,8,他们都能看⻅别人的 数字但无法看⻅自己的数字,现在面试官告诉他们这些数字都是自然数并且构成一个等比数列,让A、B、C 同学依次循环回答是否确定自己的数字是多少,每位同学的回答算作一次,经过____次有同学能准确说出自 己的数字。
相关文档
最新文档