【数据挖掘】2020奇安信秋招算法方向试卷3 笔试题解析

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 2020年奇安信秋招算法方向试卷3的题目解析,涵盖了数据结构、机器学习、深度学习、自然语言处理、排序算法、激活函数、PCA、词嵌入库等多个领域的知识点。

来自牛客网:【2020】奇安信秋招算法方向试卷3

1、设计一个判别表达式中左,右括号是否配对出现的算法,采用____数据结构最佳

答案:栈

2、对于有n 个结点的二叉树, 其高度为( )

答案:未知,可以随意变换高度

3、如何判定一个头指针为head的带头结点的单链表为空表( )

答案:head→next==NULL

4、对于顺序存储的有序表(1,2,3,4,5,6,7,8,9),若采用折半查找查找元素4,需要查几次?

答案:4

5、redis在的有序集合中在数据量极少的情况下使用的一下那种结构存储方案

答案:压缩表

6、先进先出页面置换算法中以下描述正确的是

答案:最先进来页面最先淘汰出去

7、从一个大量整数中找出最大的10个数,以下使用最优的算法是()

A.最大堆算法
B.快速排序
C.冒泡算法
D.选择排序

8、HashMap与HashTable相关以下描述不正确的是
A.HashMap不能进行数组扩容
B.二者都可以进行数组扩容
C.二者都是以链表来作为解决冲突方案
D.二者都是以散列表数据结构存储数据

答案:A

9、下列哪个函数不是常用激活函数?D
A.Sigmoid
B.Tanh
C.Relu
D.Exp

答案:D

10、深度网络反向传播中,第N层发生梯度消失,则?

答案:N层的网络梯度消失

11、以下关于dropout的说法中,正确的有?

A.使用时需要较大的learning rate
B.有助于防止过拟合
C.有助于防止梯度消失
D.减少了模型参数数量

12、多分类函数输出为(P1, P2, …, Pk), 下列哪个函数的Pi之和为1?

A.Relu
B.Sigmoid
C.Tanh
D.Softmax

13、此说法是否正确:word2vec模型由多个深度神经网络模型构成。

答案:错误

14、以下不属于凸函数的是?

A.y = logx
B.y = xlogx
C.y = ||x||
D.y=e^ax

答案:D

15、机器学习中L1正则化和L2正则化的区别是?

答案:使用L1可以得到稀疏的权值,使用L2可以得到平滑的权值。

解析:

16、如下8个点聚为3类,A1(1,2),A2(3,1),A3(8,4),B1(5,8),B2(4,1),B3(6,4),C1(3,5),C2(4,9),采用K均值算法,以下不属于第一次循环后的聚类中心的是?

A.(A1,A2,B2)
B.(B1,A3,C2)
C.(B1,A2,C2)
D.(C1,B3)

答案:C

解析:

17、通常,在LSTM中,遗忘门、输入门和输出门使用( )函数作为激活函数。

答案:Sigmoid函数

18、以下关于CNN的描述错误的是?

A.卷积操作可获取图像区域不同类型的特征。
B.汇合等操作可对提取出的特征进行融合和抽象。
C.随着若干卷积、汇合层的堆叠,各层得到的深度特征逐渐从泛化特征过度到高层语义表示。
D.不能通过叠加多层小卷积核取得与大卷积核同等规模的感受野。

答案:D

19、一个有n个顶点的图最少有(    )条边。

答案:0

20、8个外观一样的铁球,其中一个较轻,给你一个天秤,至少( )次可以找出较轻的球?

答案:2

21、以下属于生成式模型的是?

A.隐马尔科夫模型
B.神经网络
C.贝叶斯网
D.条件随机场

答案:A,C

22、以下关于自然语言处理错误的有?

A.N-gram模型相对神经网络的主要优点是其具有更高的模型容量,且处理样本只需非常少的计算量。
B.在许多自然语言应用中,通常希望模型产生字符作为输出的基本单位。
C.加速神经语言模型训练的一种方式是,避免明确地计算个别未出现在下一位置的词对梯度的贡献。
D.在神经机器翻译中,为生成以源句为条件的整句,模型必须具有表示整个源句的方式。

答案: B,C

23、下列哪些库可以用于词嵌入?

A.Word2vec
B.Glove
C.Fasttext
D.Numpy

答案:A,B,C

24、关于PCA的,哪些说法为真?

A.PCA是非监督学习模型
B.算法优先保留方差最大的维度
C.主成分数量<=特征维度数
D.所有主成分彼此正交

答案:A,B,C,D

25、下列排序算法中不是稳定排序的是?

直接选择排序
直接插入排序
希尔排序
快速排序

答案:A,C,D

排序算法 平均时间复杂度 最坏时间复杂度 最好时间复杂度 空间复杂度 稳定性
冒泡排序 O(n²) O(n²) O(n) O(1) 稳定
直接选择排序 O(n²) O(n²) O(n) O(1) 不稳定
直接插入排序 O(n²) O(n²) O(n) O(1) 稳定
快速排序 O(nlogn) O(n²) O(nlogn) O(nlogn) 不稳定
堆排序 O(nlogn) O(nlogn) O(nlogn) O(1) 不稳定
希尔排序 O(nlogn) O(ns) O(n) O(1) 不稳定
归并排序 O(nlogn) O(nlogn) O(nlogn) O(n) 稳定
计数排序 O(n+k) O(n+k) O(n+k) O(n+k) 稳定
基数排序 O(N*M) O(N*M) O(N*M) O(M) 稳定

26、以下激活函数,哪个的输出值不为负?

答案:ReLU、Sigmoid

解析:

27、如果在线性回归模型中增加一个特征变量,下列可能发生的是?
R-squared 增大,Adjust R-squared 增大
R-squared 增大,Adjust R-squared 减小
R-squared 减小,Adjust R-squared 减小
R-squared 减小,Adjust R-squared 增大

答案:A,B

解析:https://zhuanlan.zhihu.com/p/340105912

28、想要训练一个 ML 模型,样本数量有 100 万个,特征维度是 5000,面对如此大数据,如何有效地训练模型?

A.对训练集随机采样,在随机采样的数据上建立模型
B.尝试使用在线机器学习算法
C.使用 PCA 算法减少特征维度
答案:A,B,C

29、下列说法错误的有?
A. Bagging可以降低方差
B. Random Forest可以降低方差
C. Boosting可以降低偏差
D. Decision Tree可以降低偏差

答案:D

Random Forest属于bagging,是降低方差

30、以下描述正确的是?
链表进行插入、删除操作,比顺序表中效率高
散列法存储的思想是由关键字值决定数据的存储地址
一个广义表的表尾总是一个广义表
数组元素的下标值越大,存取时间越长

答案:A、B、C

解析:存取,指读出,写入,时间复杂度都是O(1),不是插入和删除操作。

2 编程题

1、有一个大型仓库使用拣货机器人从不同的货架间取货。

已知:

(1)货架呈二维网格排列,网格中的每个货架只会放置一种商品。

(2)受这代设备的技术水平所限,机器人只能沿上下左右四个方向移动,还不能沿斜线移动,请理解。

仓库当前使用的拣货算法是这样:

(1)一张订单会包含X种商品,分布在X个货架上

(2)结合将这X种商品的所在位置,将地图上的商品分解为Y个“商品堆”,然后同时派出Y个机器人,并发取货,每个机器人只负责一个“商品堆”。

(3)“商品堆”的定义是上下左右彼此相邻的一组商品。

在订单被分析后,给你一个由 ‘1’(该货架有待取货物)和 ‘0’(该货架没有待取货物)组成的的二维网格表示货架地图,请计算需要派出的机器人的数量。

比如,下面的这张货物地图:

在这里插入图片描述

在这个例子中,一共有6“堆”商品,共需要同时派出6个机器人。

输入例子1:
[[1,1,1,1,0],[1,1,0,1,0],[1,1,0,0,0],[0,0,1,0,1]]
输出例子1:
3
链接:https://www.nowcoder.com/questionTerminal/e683b9c28b594e97a3e498e5db29ea89
来源:牛客网

class Solution:
    def numIslands(self , grid ):
        # write code here
        ls=[(-1,0),(1,0),(0,-1),(0,1)]
        n=len(grid)
        m=len(grid[0])
        nums=0
        def dfs(i,j):
            grid[i][j]=0
            for k in ls:
                new_i=k[0]+i
                new_j=k[1]+j
                if 0<=new_i<n and 0<=new_j<m and grid[new_i][new_j]=="1":
                    dfs(new_i,new_j)
        for i in range(n):
            for j in range(m):
                if grid[i][j]=="1":
                    nums+=1
                    dfs(i,j)
        return nums

2 、在某厂,产品经理同学的工作职责除了给开发同学提需求,还有一件极其重要的事:对产品运营数据做归因分析。

某天,该产品经理同学接到老板要求:根据在过去一段时间内产品的“每日活跃用户数”,统计出最长的增长总天数,也就是把保持增长势头(可以不连续)的天数抽出来,你可能会得到多个新序列,计算最长的那个序列的总天数。

我们把该产品自上线以来“每日的活跃用户数”,都按照顺序放入一个数组,比如:

[1,5,122,34,45,232,342,34],以这组数据为例,把其中所有的增长子序列罗列出来:

形成了

第一个子序列: [1,5,122]

第二个子序列:[34,45,232,342]

第三个子序列:[1,5,122,232,342]

第四个子序列:[1,5,34,45,232,342]

这四个序列,其中最长的是第四个,所以这个例子中,最长的增长总天数是:6

因为该产品上线时间有十几年了,产品同学数了1个小时,眼都数花了,最后只好放弃,她决定用请开发同学吃饭,来解决这个问题,你能帮帮她吗?

输入例子1:
[10,9,2,5,3,6,101,18]
输出例子1:
4
例子说明1:
最长增长的子序列为 [2,3,6,101] 或者 [2,5,6,101]或者[2,3,6,18]或者[2,5,6,18],所以返回长度 4。
目录
相关文章
|
27天前
|
负载均衡 算法 Java
Spring Cloud全解析:负载均衡算法
本文介绍了负载均衡的两种方式:集中式负载均衡和进程内负载均衡,以及常见的负载均衡算法,包括轮询、随机、源地址哈希、加权轮询、加权随机和最小连接数等方法,帮助读者更好地理解和应用负载均衡技术。
|
7天前
|
算法 调度
操作系统的心脏:深入解析进程调度算法
本文旨在深入探讨现代操作系统中的核心功能之一——进程调度。进程调度算法是操作系统用于分配CPU时间片给各个进程的机制,以确保系统资源的高效利用和公平分配。本文将详细介绍几种主要的进程调度算法,包括先来先服务(FCFS)、短作业优先(SJF)、时间片轮转(RR)以及优先级调度(PS)。我们将分析每种算法的基本原理、优缺点及其适用场景。同时,本文还将讨论多级反馈队列(MFQ)调度算法,并探讨这些算法在实际应用中的表现及未来发展趋势。通过深入解析这些内容,希望能够为读者提供对操作系统进程调度机制的全面理解。
|
1月前
|
机器学习/深度学习 数据采集 存储
一文读懂蒙特卡洛算法:从概率模拟到机器学习模型优化的全方位解析
蒙特卡洛方法起源于1945年科学家斯坦尼斯劳·乌拉姆对纸牌游戏中概率问题的思考,与约翰·冯·诺依曼共同奠定了该方法的理论基础。该方法通过模拟大量随机场景来近似复杂问题的解,因命名灵感源自蒙特卡洛赌场。如今,蒙特卡洛方法广泛应用于机器学习领域,尤其在超参数调优、贝叶斯滤波等方面表现出色。通过随机采样超参数空间,蒙特卡洛方法能够高效地找到优质组合,适用于处理高维度、非线性问题。本文通过实例展示了蒙特卡洛方法在估算圆周率π和优化机器学习模型中的应用,并对比了其与网格搜索方法的性能。
166 1
|
2月前
|
算法 JavaScript 前端开发
国标非对称加密:RSA算法、非对称特征、js还原、jsencrypt和rsa模块解析
国标非对称加密:RSA算法、非对称特征、js还原、jsencrypt和rsa模块解析
131 1
|
2月前
|
缓存 算法 前端开发
深入理解缓存淘汰策略:LRU和LFU算法的解析与应用
【8月更文挑战第25天】在计算机科学领域,高效管理资源对于提升系统性能至关重要。内存缓存作为一种加速数据读取的有效方法,其管理策略直接影响整体性能。本文重点介绍两种常用的缓存淘汰算法:LRU(最近最少使用)和LFU(最不经常使用)。LRU算法依据数据最近是否被访问来进行淘汰决策;而LFU算法则根据数据的访问频率做出判断。这两种算法各有特点,适用于不同的应用场景。通过深入分析这两种算法的原理、实现方式及适用场景,本文旨在帮助开发者更好地理解缓存管理机制,从而在实际应用中作出更合理的选择,有效提升系统性能和用户体验。
82 1
|
2月前
|
JavaScript 算法 前端开发
"揭秘Vue.js的高效渲染秘诀:深度解析Diff算法如何让前端开发快人一步"
【8月更文挑战第20天】Vue.js是一款备受欢迎的前端框架,以其声明式的响应式数据绑定和组件化开发著称。在Vue中,Diff算法是核心之一,它高效计算虚拟DOM更新时所需的最小实际DOM变更,确保界面快速准确更新。算法通过比较新旧虚拟DOM树的同层级节点,递归检查子节点,并利用`key`属性优化列表更新。虽然存在局限性,如难以处理跨层级节点移动,但Diff算法仍是Vue高效更新机制的关键,帮助开发者构建高性能Web应用。
53 1
|
2月前
|
机器学习/深度学习 自然语言处理 负载均衡
揭秘混合专家(MoE)模型的神秘面纱:算法、系统和应用三大视角全面解析,带你领略深度学习领域的前沿技术!
【8月更文挑战第19天】在深度学习领域,混合专家(Mixture of Experts, MoE)模型通过整合多个小型专家网络的输出以实现高性能。从算法视角,MoE利用门控网络分配输入至专家网络,并通过组合机制集成输出。系统视角下,MoE需考虑并行化、通信开销及负载均衡等优化策略。在应用层面,MoE已成功应用于Google的BERT模型、Facebook的推荐系统及Microsoft的语音识别系统等多个场景。这是一种强有力的工具,能够解决复杂问题并提升效率。
57 2

热门文章

最新文章

推荐镜像

更多
下一篇
无影云桌面