京东算法工程师笔试题-2016年

一、单项选择题

1、若k为整形,下述while循环的次数为:()

k=1000;
while (k>1)
 {   print k;
      k=k/2;
 }

A、1000

B、10

C、11

D、9

2、有两个样本点,第一个点为正样本,它的特征向量是(0,-1);第二个点为负样本,它的特征向量是(2,3),从这两个样本点组成的训练集构建一个线性SVM分类器的分类面方程是()

A、2x+y=4

B、x+2y=5

C、x+2y=3

D、2x-y=0

3、假设x1和x2是两个以0为均值,1为标准差的正态分布,那么x1+x2的概率密度分布是()?

A、以0为均值,2为标准差的正态分布

B、以0为均值,sqrt(2)为标准差的正态分布

C、以0为均值,1为标准差的正态分布

D、以0为均值,sqrt(2)/2为标准差的正态分布

4、下列程序执行后,输出的结果为()

#include<stdio.h>
int cnt=0;
int fib(int n)
{
    cnt++;
    if(n==0)
       return 1;
    else if(n==1)
       return 2;
    else
       return fib(n-1)+fib(n-2);
}
void main()
{
   fib(8);
   printf("%d",cnt);
}

A、41

B、67

C、109

D、177

5、关于input split和block的描述正确的是()

A、Mapreduce 的input split就是一个block

B、input split是一种记录的逻辑划分,而block是对输入数据的物理分割,两者之间有着本质的区别

C、由于Block是本地的,DFSCline可以不用向DataNode建立连接,直接读磁盘上的文件

D、为了发挥计算本地化性能,应该尽量使inputSplit大小与block大小相当

6、以下几种模型方法属于判别式模型(Discriminative Model)的有()

1)混合高斯模型

2)条件随机场模型

3)区分度训练

4)隐马尔科夫模型

A、2,3

B、3,4

C、1,4

D、1,2

7、大整数845678992357836701转化成16进位制的表示,最后两位字符是()

A、8B

B、AB

C、EF

D、9D

8、已知数据表A中每个元素距其最终位置不远,为了节省时间,应该采取的算法是()

A、直接选择排序

B、直接插入排序

C、堆排序

D、快速排序

9、在Linux中,file.sh文件的权限为-rw-r--r-x,其对应权限用数值形式表示为()

A、775

B、745

C、645

D、643

10、设图G的相邻矩阵如下:

   0 1 1 1 1

   1 0 1 0 0

   1 1 0 1 1

   1 0 1 0 1

   1 0 1 1 0

则G的顶点数和边数分别为()

A、5,8

B、4,10

C、5,6

D、4,5

11、一段楼梯台阶有15级台阶,以小明的脚力一步最多只能跨3级,请问小明登上这段楼梯有多少种不同的走法?()

A、2345

B、3261

C、5768

D、6843

12、整数240有几个因数()

A、36

B、54

C、20

D、28

13、Nave Bayes是一种特殊的Bayes分类器,特征变量是X,类别标签是C,它的一个假定是:()

A、各类别的先验概率P(C)是相等的

B、以0为均值,sqr(2)/2为标准差的正态分布

C、特征变量X的各个维度是类别条件独立随机变量

D、P(X|C)是高斯分布

二、多项选择题

14、基于二次准则函数的H-K算法较之于感知器算法的优点是()?

A、计算量小

B、可以判别问题是否线性可分

C、其解完全适用于非线性可分的情况

D、其解的适应性更好

15、在统计模式识分类问题中,当先验概率未知时,可以使用()?

A、最小损失准则

B、N-P判决

C、最小最大损失准则

D、最小误判概率准则

16、以下()属于线性分类器最佳准则?

A、感知准则函数

B、贝叶斯分类

C、支持向量机

D、Fisher准则

17、下列代码片段中,存在编辑错误的语句是()

byte b1=1,b2=2,b3,b6,b8;
final byte b4=4,b5=6,b7;
b3=(b1+b2);  /*语句1*/
b6=b4+b5;    /*语句2*/
b8=(b1+b4);  /*语句3*/
b7=(b2+b5);  /*语句4*/
System.out.println(b3+b6);

A、语句2

B、语句1

C、语句3

D、语句4

18、SecondNamenode的正确描述是()

A、与NameNode一样同时对外提供服务,减轻NameNode的压力,如果NameNode意外终止,SecondaryNameNode会接替它使集群继续工作

B、SecondNamenode会周期地进行fsimage文件的合并,防止edits文件过大,导致Namenode启动时间过长,应该与Namenode部署到不同节点上

C、SecondNamenode会周期地进行fsimage文件的合并,防止edits文件过大,导致Namenode启动时间过长,应该与Namenode部署到同一个节点上

D、SecondNamenode是对主Namenode的一个补充,对内存的需求和Namenode相同

19、下面关于Hive的说法正确的是()

A、Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文本映射为一张数据库表,并提供简单的SQL查询功能

B、Hive可以直接使用SQL语句进行相关操作

C、Hive能够在大规模数据集上实现低延迟快速的查询

D、Hivez在加载数据过程中不会对数据进行任何的修改,只是将数据移动到HDFS中Hive设定的目录下

20、以下是strom特点的是()

A、实时性

B、容错机制

C、批处理

D、高可靠性

21、下列有关k-mean算法说法正确的是()

A、不能自动识别类的个数,随机挑选初始点为中心点计算

B、数据数量不多时,输入的数据的顺序不同会导致结果不同

C、不能自动识别类的个数,不是随机挑选初始点为中心点计算

D、初始聚类中心的选择对聚类结果的影响很大

三、编程题

22、有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或者二级,要走上m级,共有多少走法?注:规定从一级到一级有0种走法。

给定一个正整数int n,请返回一个数,代表上楼的方式数。保证n小于等于100。为了防止溢出,请返回结果Mod 1000000007的值。

测试样例:
3
返回:2

23、小东和三个朋友一起在楼上抛小球,他们站在楼房的不同层,假设小东站的楼层距离地面N米,球从他手里自由落下,每次落地后反跳回上次下落高度的一半,并以此类推知道全部落到地面不跳,求4个小球一共经过了多少米?(数字都为整数)

给定四个整数A,B,C,D,请返回所求结果。 


测试样例:
100,90,80,70
返回:1020




参考答案

1、D    2、C    3、B    4、B    5、B    6、A    7、D    8、 B   9、C    10、A    11、C    12、C    13、C

14、BCD    15、BC    16、ACD    17、BCD    18、BD    19、AD    20、ABCD    21、AD    

22、参考代码:

这题用递归的斐波那契数列算法会超时:
    public int countWays(int n) {
        // write code here
                 
        if(n==0){
            return 0;
        }else if(n==1){
            return 1;
        }else if(n==2){
            return 2;
        }else{
            return countWays(n-1)+countWays(n-2);
        }  
         
    }
所以可以把他改成动态规划:
        public int countWays(int n) {
        // write code here
 
        int dp[]=new int [n];         
 
        dp[0]=0;
        dp[1]=1;
        dp[2]=2;
        if(n>2){
            for(int i=3;i<n;i++){
                dp[i]=(dp[i-1]+dp[i-2])%1000000007;
            }
        }
        return dp[n-1];
 
    }
dp[i]表示的是到第i个台阶有多少种跳法。

23、刚开始做这个题受到了括号里  数字都为整数  的误导,以为  落地距离是5米,弹起后2米(5/2自动取整)。算出来结果不对,变小了。所以,不是自动取整。就是所有的都算进去,这就牵扯到数学上的极限思想了。除了最开始的下落高度只加一次外,以后的弹起下落都是两倍的距离。举个例子,下落高度是x米 ,则有下落后弹起的高度是x/2,再落下去,又走了一个x/2,依此类推,一直下去,也就是总距离为 x+2*x(1/2+1/4+1/8+……),而括号中的数列是一个等比数列,其极限求和的结果就是1。所以 总距离就是3*x。推理到这里,就发现写程序只需要一行关键代码就可以。

classBalls {
public:
    intcalcDistance(intA, intB, intC, intD) {
        // write code here
        return3*(A+B+C+D);
    }
};
个人资料
Bingo
等级:9
文章:694篇
访问:38.9w
排名: 1
上一篇: 新一代开源Android渠道包生成工具Walle
下一篇:360奇虎校招笔试卷-2014年
猜你感兴趣的圈子:
京东笔试面试圈
标签: dp、namenode、准则、正态分布、标准差、面试题
隐藏