哔哩哔哩2020校园招聘算法笔试试卷(一)


先说一下感想:看完后感觉自己一道题都不会。。自己虽然学的多,但是学的都非常的杂。。而且学的很多都是基础,虽然自己非常讨厌算法,但是说实话,不学算法,终究只能停留在非常基础编码上,所以以后打算多做点算法题提高自己的编码能力!!

题目1

设已有说明语句“int a=5;”,则执行语句“a+=a*=a%=3;”后,a的值为

错误分析:

这里a在计算的同时它的值也已经改变了。

解析:

原式:

a+=a*=a%=3
a%=3 等价于:a=a%3,a=2,a%3=2
a*=a%=3 等价于:a=a*(a%=3),a=a2,因上式a=2,所以,a=22,a=4,a*(a%=3)=4
a+=a*=a%=3 等价于:a=a+a*(a%=3),因上式a*(a%=3)=4,a=4
所以,a=4+4
a=8


题目2

以下关于this指针的叙述中正确的是
x任何与类相关的函数都有this指针
X类的成员函数都有this指针
X类的友元函数都有this指针
V类的非静态成员函数才有this指针

这个题目看到答案后就瞬间明白了~~~

静态成员是没有this指针的。。。。


题3

下面函数存在的问题

void fun() 
{
 int *num1, *num2; 
 num1 = new int[10]; 
 num2 = new int[20]; 
 num1[0] = 100; 
 num2[0] = 300; 
 num1 = num2; 
 delete [] num1; 
}

num1最初指向的空间没有释放

解析

这里是因为num1的指针被num2覆盖了,最后删除的时候只是把num1给删除了

题4

一个数组长度为n。指定数组内的一个元素,把数组内小等于该元素的,放在该元素左边,把数组内大于该元素的,放在该元素右边。这个需要多少次操作

答案是n

这个我找不到解析。。。

题5

如果只用比较、交互、赋值等操作,而不能使用算数操作(加减乘除等),将一个数组排序,最少需要多少次操作?

答案是 nlogn

排序算法 平均时间复杂度 最坏时间复杂度 最好时间复杂度 空间复杂度 稳定性
冒泡排序 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) 稳定

这里最快的操作就是快速排序了

题6

以下哪个集合不是凸(convex)的?

我感觉好多考的都是数学题~~~ 这个是关于数学优化的问题

百度百科定义:
在凸几何中,凸集(convex set)是在凸组合下闭合的仿射空间的子集。更具体地说,在欧氏空间中,凸集是对于集合内的每一对点,连接该对点的直线段上的每个点也在该集合内。例如,立方体是凸集,但是任何中空的或具有凹痕的例如月牙形都不是凸集。

答案:{x | ||x|| >= 1}, ||x||表示x的绝对值

图像只是一条线,所以不算凸集

题7

假设每天投稿池中,每1000个视频中会有1个营销号视频,为了净化社区环境,b站同事训练了一个检测营销号视频的模型。模型评估结果如下:如果某视频是营销号视频,就一定会被模型检测出来,但是如果某视频是正常视频,也会有1%的概率被误判成营销号视频。提问:现在有一个新投稿的视频,被模型判定成了营销号视频,那么它原本真正是营销号视频的概率是多少

答案:0.09099

这个是一个非常典型的概率计算的题目。
但我书上的内容忘的差不多了。。。以后有时间我在去研究一下。

题8

神经网络中的dropout的效果跟以下哪种机器学习方法的效果类似

答案:Bagging

这种题目真的一脸懵逼,因为之前从来就没有学过。。

解析:Dropout可以认为是一种极端的Bagging,每一个模型都在单独的数据上训练,同时,通过和其他模型对应参数的共享,从而实现模型参数的高度正则化。

题9

向量 A=[1, 3, 6, 4, -9, 0]的L1范数为

答案:23

这个好像是概率论与数理统计里面的内容。。。突然发现大学学的面试都用的到QAQ
范数是指向量中各个元素绝对值之和。

题10

给定一个离散型随机变量x的分布P(x),这个变量的熵(entropy)定义为sum-P(xi)*log(P(xi)),那么当熵的值逐渐升高时,说明:

答案:变量的分布逐步平均化

又是概率论的题目。。。这课我都没怎么认真听。。。

当熵升高的时候,相当于p(x)减少。。

。。。
看了一下后面的题目。。。好多都是和人工智能算法相关的,吐了。。。


文章作者: 小游
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 小游 !
  目录