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

简介: 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。
目录
相关文章
|
2月前
|
存储 算法 安全
如何控制上网行为——基于 C# 实现布隆过滤器算法的上网行为管控策略研究与实践解析
在数字化办公生态系统中,企业对员工网络行为的精细化管理已成为保障网络安全、提升组织效能的核心命题。如何在有效防范恶意网站访问、数据泄露风险的同时,避免过度管控对正常业务运作的负面影响,构成了企业网络安全领域的重要研究方向。在此背景下,数据结构与算法作为底层技术支撑,其重要性愈发凸显。本文将以布隆过滤器算法为研究对象,基于 C# 编程语言开展理论分析与工程实践,系统探讨该算法在企业上网行为管理中的应用范式。
90 8
|
2月前
|
存储 监控 算法
解析公司屏幕监控软件中 C# 字典算法的数据管理效能与优化策略
数字化办公的时代背景下,企业为维护信息安全并提升管理效能,公司屏幕监控软件的应用日益普及。此软件犹如企业网络的 “数字卫士”,持续记录员工电脑屏幕的操作动态。然而,伴随数据量的持续增长,如何高效管理这些监控数据成为关键议题。C# 中的字典(Dictionary)数据结构,以其独特的键值对存储模式和高效的操作性能,为公司屏幕监控软件的数据管理提供了有力支持。下文将深入探究其原理与应用。
56 4
|
3月前
|
机器学习/深度学习 监控 算法
员工上网行为监控软件中基于滑动窗口的C#流量统计算法解析​
在数字化办公环境中,员工上网行为监控软件需要高效处理海量网络请求数据,同时实时识别异常行为(如高频访问非工作网站)。传统的时间序列统计方法因计算复杂度过高,难以满足低延迟需求。本文将介绍一种基于滑动窗口的C#统计算法,通过动态时间窗口管理,实现高效的行为模式分析与流量计数。
74 2
|
2月前
|
存储 监控 算法
内网监控桌面与 PHP 哈希算法:从数据追踪到行为审计的技术解析
本文探讨了内网监控桌面系统的技术需求与数据结构选型,重点分析了哈希算法在企业内网安全管理中的应用。通过PHP语言实现的SHA-256算法,可有效支持软件准入控制、数据传输审计及操作日志存证等功能。文章还介绍了性能优化策略(如分块哈希计算和并行处理)与安全增强措施(如盐值强化和动态更新),并展望了哈希算法在图像处理、网络流量分析等领域的扩展应用。最终强调了构建完整内网安全闭环的重要性,为企业数字资产保护提供技术支撑。
85 2
|
3月前
|
存储 监控 算法
基于 C++ 哈希表算法的局域网如何监控电脑技术解析
当代数字化办公与生活环境中,局域网的广泛应用极大地提升了信息交互的效率与便捷性。然而,出于网络安全管理、资源合理分配以及合规性要求等多方面的考量,对局域网内计算机进行有效监控成为一项至关重要的任务。实现局域网内计算机监控,涉及多种数据结构与算法的运用。本文聚焦于 C++ 编程语言中的哈希表算法,深入探讨其在局域网计算机监控场景中的应用,并通过详尽的代码示例进行阐释。
81 4
|
3月前
|
存储 监控 算法
员工电脑监控场景下 Python 红黑树算法的深度解析
在当代企业管理范式中,员工电脑监控业已成为一种广泛采用的策略性手段,其核心目标在于维护企业信息安全、提升工作效能并确保合规性。借助对员工电脑操作的实时监测机制,企业能够敏锐洞察潜在风险,诸如数据泄露、恶意软件侵袭等威胁。而员工电脑监控系统的高效运作,高度依赖于底层的数据结构与算法架构。本文旨在深入探究红黑树(Red - Black Tree)这一数据结构在员工电脑监控领域的应用,并通过 Python 代码实例详尽阐释其实现机制。
82 7
|
3月前
|
存储 算法 物联网
解析局域网内控制电脑机制:基于 Go 语言链表算法的隐秘通信技术探究
数字化办公与物联网蓬勃发展的时代背景下,局域网内计算机控制已成为提升工作效率、达成设备协同管理的重要途径。无论是企业远程办公时的设备统一调度,还是智能家居系统中多设备间的联动控制,高效的数据传输与管理机制均构成实现局域网内计算机控制功能的核心要素。本文将深入探究 Go 语言中的链表数据结构,剖析其在局域网内计算机控制过程中,如何达成数据的有序存储与高效传输,并通过完整的 Go 语言代码示例展示其应用流程。
75 0
|
4月前
|
监控 算法 安全
基于 C# 的内网行为管理软件入侵检测算法解析
当下数字化办公环境中,内网行为管理软件已成为企业维护网络安全、提高办公效率的关键工具。它宛如一位恪尽职守的网络守护者,持续监控内网中的各类活动,以确保数据安全及网络稳定。在其诸多功能实现的背后,先进的数据结构与算法发挥着至关重要的作用。本文将深入探究一种应用于内网行为管理软件的 C# 算法 —— 基于二叉搜索树的入侵检测算法,并借助具体代码例程予以解析。
73 4
|
4月前
|
JavaScript 算法 前端开发
JS数组操作方法全景图,全网最全构建完整知识网络!js数组操作方法全集(实现筛选转换、随机排序洗牌算法、复杂数据处理统计等情景详解,附大量源码和易错点解析)
这些方法提供了对数组的全面操作,包括搜索、遍历、转换和聚合等。通过分为原地操作方法、非原地操作方法和其他方法便于您理解和记忆,并熟悉他们各自的使用方法与使用范围。详细的案例与进阶使用,方便您理解数组操作的底层原理。链式调用的几个案例,让您玩转数组操作。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
4月前
|
存储 监控 算法
关于员工上网监控系统中 PHP 关联数组算法的学术解析
在当代企业管理中,员工上网监控系统是维护信息安全和提升工作效率的关键工具。PHP 中的关联数组凭借其灵活的键值对存储方式,在记录员工网络活动、管理访问规则及分析上网行为等方面发挥重要作用。通过关联数组,系统能高效记录每位员工的上网历史,设定网站访问权限,并统计不同类型的网站访问频率,帮助企业洞察员工上网模式,发现潜在问题并采取相应管理措施,从而保障信息安全和提高工作效率。
59 7

热门文章

最新文章

推荐镜像

更多
  • DNS