时间:90分钟
2022年京东算法工程师笔试题(23届)

1 单选题

1、MySQL内部存储代码的优势

  • 服务器上执行还可以节省带宽和网络延迟
  • 代码重用。可以方便的统一业务规则,保证某些行为的一致性,所以也可以提供一定的安全性
  • 简化代码的维护和版本更新
  • 帮助提升安全,比如提供更细粒度的权限控制
  • 备份、维护都可以在服务器端完成,所以存储程序的维护工作会很简单。他没有什么外部依赖,不需要依赖外部程序的部署。

2、MySQL 中Seperate by ’ | '的使用

题目是SQL语句的使用,查询回来的多个字段组成一个字符串,以|分开,判断’|‘和’ | ‘(有空格)两种方法,哪种正确

答案:不知

3、全微分(ay^2 -3xy)dx = (bx^2+3xy+2)dy,求a,b

答案:a = 3/2 ,b= -3/2

积分相等求a,b

∫ay2−3xydx=∫bx2+3xy+2dy\int ay^2-3xy dx = \int bx^2+3xy+2 dy∫ay2−3xydx=∫bx2+3xy+2dy

$ ay^2x -\frac{3}{2}x^2y = bx2y+\frac{3}{2}xy2+2y$

a=32,b=−32a = \frac{3}{2},b=-\frac{3}{2}a=23​,b=−23​

4、判断:ReLu在R上可导,可以反向传播?

错误:relu在零点处不可导

5、栈S1,S2,大小分别是2,1。先进栈A,再进栈B。栈满再出,A、B、C、D一次进栈,则出栈顺序是?

答案:B 、C、D、A

6、label = [A、A、A、A、B、B、B、B、C、C]

预测的结果pred = [A、A、B、C、C、A、C、C、C、C]

求macro的F1-Score

答案:

原label和预测值

y_true = [0,0,0,0,1,1,1,1,2,2]
y_pred = [0,0,1,2,2,1,2,2,2,2]

根据P/R的计算规则,

Precision = (预测为1且正确预测的样本数)/(所有预测为1的样本数) = TP/(TP+FP)
Recall = (预测为1且正确预测的样本数)/(所有真实情况为1的样本数) = TP/(TP+FN)
F1 = 2×(Precision×Recall)/(Precision+Recall)
下面计算过程中,若除法过程中,分子分母同时为零,则最终结果也为0.

则Macro Average F1的计算过程如下:

(1)如下,将第1个类别设置为True(1),非第1个类别的设置为False(0),计算其P1,R1

y_true=[1,1,1,1,0,0,0,0,0,0]
y_pred=[1,1,0,0,0,0,0,0,0,0]

TP = 2/10,FN= 2/10,FP = 0,TN = 6/10

P1 = (预测为1且正确预测的样本数)/(所有预测为1的样本数) = TP/(TP+FP) = 1
R1 = (预测为1且正确预测的样本数)/(所有真实情况为1的样本数) = TP/(TP+FN)=1/2
F1_1 = 2×(Precision×Recall)/(Precision+Recall)=2/3
(2)如下,将第2个类别设置为True(1),非第2个类别的设置为False(0),计算其P2,R2

y_true=[0,0,0,0,1,1,1,1,0,0]
y_pred=[0,0,1,0,0,1,0,0,0,0]

P2 = (预测为1且正确预测的样本数)/(所有预测为1的样本数) = TP/(TP+FP) =1/2
R2 = (预测为1且正确预测的样本数)/(所有真实情况为1的样本数) = TP/(TP+FN)= 1/4
F1_2 = 1/3
(3)如下,将第3个类别设置为True(1),非第3个类别的设置为False(0),计算其P3,R3

y_true=[0,0,0,0,0,0,0,0,1,1]
y_pred=[0,0,0,1,1,0,1,1,1,1]

P3 = (预测为1且正确预测的样本数)/(所有预测为1的样本数) = TP/(TP+FP) = 1/3
R3 = (预测为1且正确预测的样本数)/(所有真实情况为1的样本数) = TP/(TP+FN)= 1
F1_3 = 1/2
(4)对P1/P2/P3取平均为P,对R1/R2/R3取平均为R,对F1_1/F1_2/F1_3取平均F1
F1 =(F1_1+F1_2+F1_3)/3 = 1/2 = 0.5
最后这个取平均后的得到的P值/R值,就是Macro规则下的P值/R值。

对这个3类别模型来说,它的F1就是0.5。

from sklearn.metrics import f1_scorey_true = [0,0,0,0,1,1,1,1,2,2]
y_pred = [0,0,1,2,2,1,2,2,2,2]
print(f1_score(y_true, y_pred, average='macro'))
输出:0.5

7、LSTM中两个激活函数的作用

解析:

sigmoid 用在了各种gate上,产生0~1之间的值。

tanh 用在了状态和输出上,是对数据的处理,这个用其他激活函数或许也可以。

8、有一个正整数n=10,每次可以花费3个金币让n除以2,向上取整,或者花费一个金币让n减去1,想知道让n变成1,最少要多少金币?

答案:7
当n/2>3时跨度,选择花3金币的方法
当n/2<=3时,选择花1金币的方法
则10/2 = 5,跨度10-5>3,选择3金币的方法,花费3个金币
[5/2] = 3 ,跨度5-3 = 2<3 ,选择1金币的方法,需要花费2个金币
[3/2] = 2,跨度3-2 = 1<3,选择1金币的方法,需要花费1个金币
[2/2] = 1,跨度2-1 = 1<3,选择1金币的方法,需要花费1个金币
综上,需要总共花费3+2+1+1 = 7

9、一个矩阵的特征值是1、-2、3、10、52、41、83、8,当该矩阵加减一个单位矩阵后,它可能的特征值是多少?

答案:11

解析:一个矩阵加λ\lambdaλ倍的单位矩阵,A+λ\lambdaλE ,则所有特征值加λ\lambdaλ

10、KMP匹配算法中,子串S= ’aaaab‘,主串T= ’abaaaabca‘。求匹配过程中的比较次数?

答案:我计算得到的是8次,但不知道是否准确,推理过程如下

第一轮

a b a a a a b c a

a a a a b(比较2次)

第二轮

a b a a a a b c a

a a a a b(比较1次)

第三轮

a b a a a a b c a

​ a a a a b(比较5次)

共8次

11,a = [1,2,3,4],b = [‘c’,‘d’],如何得到a = [1,2,3,4,‘c’,‘d’]

答案:a = a+b

12、程序的输出是什么?

题目我忘了?
T(15467)

答案:1 5 4 6 7

13、三次重复独立时间,A的概率不变,时间A至少发生一次的概率是3764\frac{37}{64}6437​,则A的概率是多少?

1- 3764=2764=P(A)3\frac{37}{64} = \frac{27}{64} = P(A)^36437​=6427​=P(A)3

则 P(A) =$ \frac{3}{4}$

14、程序的输出是?

dic = dict.fromkeys(['k1','k2','k3'],[])
dic['k1'].append(1)
dic['k2'].append(2)
dic['k1'] = 1
print(dic)

答案:{‘k1’: 1, ‘k2’: [1, 2], ‘k3’: [1, 2]}

15、程序的输出是

def mk(x):def mk1():print("Decorated")x()return mk1
def mk2():print("Ordinary")
p = mk(mk2)
p()

答案:

Decorated

Ordinary

2 编程题

1、最小因子问题

小红拿到一个正整数n,他希望找到n的一个最小因子p,满足p*p>n

案例:

输入

2

36

37

输出
9

37

def low_fac(n):k = nfor i in range(1,n+1):if n%i==0 and i*i>k:print(int(i))
N = int(input())
for _ in range(N):j = int(input())low_fac(j)

以上算法超时

优化后的方法

import math
def low_fac(n):ans = []for i in range(1,int(math.sqrt(n))):if n%i==0:if i*i>n:ans.append(i)t = int(n/i)if t!=i and t*t>n:ans.append(t)return min(ans)       N = int(input())
for _ in range(N):j = int(input())print(low_fac(j))

2、括号匹配问题:

定义一个括号串的权值为,它的最长合法括号子序列的长度,例如()())的权值是4,因为它的最长合法括号子序列为()(),求一个给定括号串的所有子串权值之和。

注意,我忘了题目,自己理解的题意是,先求一个字符串的所有子串,并计算子串的权值(即最长合法括号子序列)

并且,权值的计算,我忘记了,不确定是否是这么计算的,我记得的题目给中())())的权值是4。我理解不通。我把题目改成了()())。


from itertools import combinations
# 求最长合法括号子序列的长度,即权值
def Process(s):# resl记录最长合法子串的长度w = 0stack = list()for i in range(len(s)):if stack and s[i] == ")" and s[stack[-1]] == "(":stack.pop()# 将当前的右括号加入到栈中, 可以充当分割的作用else:stack.append(i)# 栈非空的时候更新当前的长度, 说明已经匹配完所有的左括号了if stack:r = i - stack[-1]else:# 说明当前的左括号已经全部消除掉了r = i + 1# 合法序列的长度更大则更新, 相等则数目加1if r > w:w = rreturn w
# 生成所有子串
def generate_s(s):    substring = []for i in range(1,len(s)+1):substring.extend(list(combinations(s,i)))substring = [''.join(i) for i in substring]return substring
if __name__ == '__main__':s = '()()())'score = 0for i in generate_s(s):score +=Process(s)print(score)

【数据挖掘】2022年京东算法工程师笔试题(23届)相关推荐

  1. 【数据挖掘】2022年昆仑万维 算法工程师笔试题

    [数据挖掘]2022年昆仑万维 算法工程师笔试题 企业:昆仑万维 1 单选题 1.ABCDE,出栈的顺序不可能是? 栈的知识 2.连续投硬币,第一次正面,奇数次A赢,偶数次B赢.则A赢的概率是多少 问 ...

  2. 名企笔试:京东 2016 算法工程师笔试题(登楼梯)

    名企笔试:京东 2016 算法工程师笔试题(登楼梯) 2017-02-04 算法爱好者 有一段楼梯台阶有 15 级台阶,以小明的脚力一步最多只能跨 3 级,请问小明登上这段楼梯,有多少种不同的走法? ...

  3. 【数据挖掘】2022年2023届秋招知能科技公司机器学习算法工程师 笔试题

    岗位:高级机器学习算法工程师 笔试时间:2022-9-28 1 简答题 1.神经网络中防止过拟合的方法 (1)降低模型复杂度 (2)正则化 ,正则化正是通过在损失函数上添加额外的参数稀疏性惩罚项(正则 ...

  4. 京东2019春招算法工程师笔试题-牛牛下象棋(编程题3)

    这次京东2019的春招算法工程师笔试时间是2018-04-09 19:00~21:00,其中有三道编程题目,当时就做了2个,后一个时间原因就没做,就截了一个图,今天又突然看到了,练练手吧哈. 题目要求 ...

  5. 滴滴-2019+快手2020(A)-校园招聘算法工程师笔试题

    在什么情况需要对特征使用归一化处理? 要解决这个问题首先要看归一化的作用: 1.归一化可以加快梯度下降法求解最优解的速度. 当特征之间的数值变化范围相差太大时,会使得收敛路径呈Z字型,导致收敛太慢,或 ...

  6. BD视觉算法工程师笔试题

    选择题 1 答案:D 2 答案:A 此代码为PHP语言. 3 答案:A 4 答案:D 当一个优先级高的线程进入就绪状态时,它只是有较高的概率能够抢到CPU的执行权,不是一定就能抢到执行权. 当前线程调 ...

  7. 【数学基础】校招算法工程师笔试题

    请留言,说出你的解题思路和答案.稍后,我会把参考答案发到留言区.不定期整理相关的问题答案分享. 1.下列矩阵的主元列为() A=[000111001123]A=\begin{bmatrix}0& ...

  8. 2018摩拜算法工程师笔试题

    一.字符串变形 输入两个字符串a和b,a的长度小于b的长度.现在可以在a中的每个位置插入任意字符,使得最终a的长度等于b的长度,问最后a和b中对应位置字符不同的位置的个数. 这个问题可以看做是:带约束 ...

  9. 京东电器工程师笔试题

    1.熔断器是当今社会最常见的起到保护性作用的器件之一,与其相关的一个理念是熔断器额定电流,是指熔断器的( )部分允许通过的最大长期工作电流. 熔管.载流部分和底座 2.在对一段完整电路设计时,我们需要 ...

最新文章

  1. Ubuntu 14.04 64bit上查看网页中的cookies
  2. 藤摇椅游戏道具制作全流程讲解视频教程
  3. 安徽一个班37人考进清华北大,老师发来一则短信,家长沉默了
  4. Linux系列开坑记(二)-神的编辑器Vim
  5. 使用WebDriver遇到的那些坑
  6. 再有人问你Java内存模型是什么,就把这篇文章发给他。
  7. 的引用_懵!啥是Java软引用、弱引用、虚引用?
  8. SpringBoot 整合Shiro实现动态权限加载更新+Session共享+单点登录
  9. java邮箱正则表达式_Java正则表达式详解
  10. 转 五种提高 SQL 性能的方法
  11. [转载] 聚类算法总结
  12. android 音频文件下载
  13. windows远程linux桌面
  14. 我的世界 服务器 无限载入地形,我的世界:奇特地形被官方隐藏,群系无限重复,你能发现规律吗?...
  15. 阿里云免费的ssl证书到期怎么续费
  16. 【码云学习02】Git基本命令
  17. 微信绑定会员卡服务器出错,会员卡信息更新失败
  18. c语言51单片机湿度浇花器,基于51单片机的室内自动浇花系统的制作方法
  19. rails--图片的使用
  20. 【机器学习】浅谈正规方程法梯度下降

热门文章

  1. 用*显示出一个三角形(靠右)
  2. 《快速阅读术》--如何养成阅读的习惯
  3. 果然是暖男,太有爱了
  4. caffe训练过程可视化-将两个loss曲线一个accuracy曲线画在一个图上
  5. 统一用户认证和单点登录(SSO)解决方案
  6. zhang-Suen图像骨架提取(原理和代码)
  7. 发布 WebService
  8. freeswitch介绍安装部署(centos6+, win7,win8,win10)
  9. RS232串口通信详解
  10. 从学习C++到用C++做外挂