面试记录

一面:

Q:掷骰子,12我赢,345你赢,6继续掷,你赢的概率

A:3/5

Q:1分1个桃,3个桃核换一个桃,给你1块你最多吃几个桃

A:14

Q:你剩了什么

A:2个桃核

Q:那这两个桃核能在吃一个桃吗

A:如果能借一个桃那就可以 借一个,再还3个桃核

Q:给你一个有序数组,其中一个数出现次数超过一半,找到这个数

A(紧张脑抽):这个问题无序数组也能做吧

Q:对,但有序数组有更好的复杂度

A(继续脑抽):那个是O(n),能更好......找到中间数字,O(1)

Q:那现在我们不知道是否存在这样一个数了,需要你来判断

A:找到中间数字左右扫,O(n)

Q:更优?

A:二分

Q:两有序数组求交集

A:双指针

Q:k个有序数组求并集

A:O(nklogk)

Q:操作系统,内核态和用户态

A:...答得很烂,说了个表面...

......一些无聊的家常......

Q:来写个算法题,两个可能有环的单向链表判断是否相交

A:....写了个空间时间都是O(n)的做法...

Q:写个更优的

A:自闭很久,佛洛依德判环法...空间O(1)

end.

 

二面:

手写代码,copy一个可能有环的链表

允许O(n)空间,爽啊,在结构体里搞个vis美滋滋

然后就忘记把最后一个元素的next也copy了

写个个非常麻烦的补救,过

1个1s能完成的任务随机分成3份并行执行,0.5s内完成的概率

3维空间的一个截面,算啊算,算错2次才得到1/4

4份?

算啊算,3维空间的体积,1/2

n份?

把问题变成离散的,令x1+x2+...+xn=k,xi均为整数,k无穷大时和原问题等价

此时分配方案有C(k-1, n-1)个

目标是0<=xi<=k/2,考虑不满足目标的情况,最多有一个xi>k/2

我们令xi=xi-k/2,就有了x1+...+xn=k/2

所以不满足目标的情况是C(n,1)*C(k/2-1,n-1)

k无穷大时可以把k-1化成k,k/2-1化成k/2

然后两个方案一比得到不满足目标的概率是n/(2^(n-1))

所以满足目标的概率是1-n/(2^(n-1))

...后面介绍了一下公司...反正给的都是正向反馈...希望不是出于礼貌...

 

三面:

Q:介绍一下你自己

A:...懵逼了一会。然后背简历...

Q:你对c++的static变量的理解

A:在函数中申请的静态变量只会被创建和初始化一次

    类中的静态变量和类绑定,与类的对象无关

Q:我们一个c程序到变成可执行文件的过程

A:分析阶段,词法分析,语法分析,语义分析

   提词,构语法数,类型检查

   综合阶段,我忘了,反正就出来可执行文件了

Q:c++程序的常数优化

A:IO优化

   位运算优化

   指针优化(指针速度比数组快

   (register优化?编译器能自己优化了,不需要我做)

Q:tcp和udp的应用

A:tcp常见应用应该是http协议...卡住

Q:tcp和udp区别

A:tcp需要双方建立通信,udp不需要...卡主

Q:进程和线程区别

A:终于有个我准备的了...一顿说

Q:算法题...哦你队主代码手啊,那没事了

Q:大数据懂么?不懂。机器学习?不懂。

哦中间问了个三角形切几刀能拼出长方形,想了下两刀。

End. 

posted @ 2019-07-15 19:33  ztztyyy  阅读(141)  评论(0编辑  收藏  举报