滴滴SP数分四面面经

金融风险部门

三轮面试(2020.7.30,每一面大概25min,1v1)

前面三轮等我先把课程论文码完,有空再补哈


四面(2020.8.6,17:00-18:00,1h,1v1)
1.自我介绍
2.平均数和中位数的区别
~~~~~一大波逻辑题来袭~~~~
3.一个500ml的杯子,一个300ml的杯子,一个水龙头,怎么得到400ml的水
4.同上一题情况,5步内得到400ml的水,有多少种情形

(午休前突然想到一点点思路,大家一起头脑风暴一下↓↓↓)
感觉是,两个杯子其实能够马上知道的容量是300,500,150,250(整杯,或者倾斜对角线得到一半容量)
从而可以得到50,100,200,350的水
然而再考虑5步完成的问题


5.一共有要获得1000元,现在有2元、5元、10元,请问一共有多少种组合,把伪代码写出来

(来自牛友zhangwenyao的解答:
2和5互质,最小倍数刚好是10,所以2的个数必须是5的整数倍,5的个数是2的整数倍,2、5、10的分别总额都是10的倍数。1000是10的100倍,相当于求100个10和2个隔板的组合数目(隔板分开部分分别对应2、5、10的总额),即100+2=102个位置取2个位置放隔板,有102*101/2=5151种不同可能。

也可以暴力求解,依次遍历10、5、2的可能值:
ans=0
for ten = 0 to 1000/10:
for five = 0 to (1000-ten*10)/5:
if (1000-ten*10-five*5)%2==0:
ans++
return ans)

###零钱问题(完全背包问题的变形求解)
def change(amount,coins):
    n=len(coins)
    if n<=0&nbs***bsp;amount<0:
        return 0
    f=[0]*(amount+1)
    f[0]=1
    for i in range(n):
        for j in range(coins[i],amount+1):
            f[j]=f[j]+f[j-coins[i]]
    return f[-1]
amount=1000 coins=[2,5,10]
change(amount,coins)


6.一共有4顶帽子,黑白各两顶,随机分配给ABCD。A不能看到B、C、D并且B、C、D也不能看到A,位于高处的人可以看到低处的,低处的看不到高处的。
假设:a.第一轮知道自己帽子颜色的人,会马上说“我是X,我的颜色是X”
b.后面每一轮知道自己帽子颜色的人,也会马上报出来自己的颜色
问:谁一定知道自己的颜色

(来自牛友L13的解答:
B、C一定会知道。分两种情况,BC同色和BC不同色:
(一)BC同色
第一轮.D确定自己与BC异色,说
第二轮.BC知道自己相互同色与D异色,说
第三轮.A也知道了
(二)BC不同色
第一轮.D看到了BC异色,不确定
第二轮.C从第一轮D的反应知道了自己与B异色,说出来自己的颜色
第三轮.B通过前两轮的信息,知道自己颜色,说
这种情况,AD异色,各自也不能确定自己到底是啥颜色


7.开放题:有一个十字路口的红绿灯经常被投诉,你是此次调研人员,你会怎么去对红绿灯设置是否合理进行评判,指标是什么?
(希望有想法的朋友能在评论区解答下,我真的对红绿灯不怎么了解)



逻辑题和概率题可以说是我的命门,结果四面直击命门,除了1~3题,后面的基本都没有一次性答对,而且第4、5题我都只做了一次尝试就放弃了,因为没有什么想法。还有的可能就是因为是在实习公司的会议室面的,有点紧张。

面试官也说我的耐性可能不够,缺乏把现实问题转化为数学问题进行求解的能力。所以面试的小伙伴遇到不会的还是多挣扎挣扎。

没办法,自己的能力也确实达不到SP的级别,所以还是重在参与吧。滴滴是我的第一个秋招面试,四轮面试的面试官都很有耐心,会给你很多想法,其实有不太懂的地方,建议在最后提问环节,问问面试官对这个问题的看法,也是自我提升的一个很好的途径。还是很感谢这次机会的!希望有缘再会吧!!


许愿早点拿到一个秋招offer。加油加油!!!
(已普通offer啦)
#滴滴数据分析师面经##面经##校招##数据分析工程师##滴滴#
全部评论
优秀
1 回复 分享
发布于 2020-08-07 01:15
请问第四题的思路应该是啥?
1 回复 分享
发布于 2020-08-09 17:14
求第四题思路
1 回复 分享
发布于 2020-08-18 00:15
第6题究竟是谁呢,我推了之后发现谁都不是,是哪里不对吗?
点赞 回复 分享
发布于 2020-08-06 21:54
好难呀,我问的比你这个还多
点赞 回复 分享
发布于 2020-08-07 01:08
sp没过有普通offer吗😂
点赞 回复 分享
发布于 2020-08-07 01:09
第五题的答案是什么呀
点赞 回复 分享
发布于 2020-08-07 10:28
感觉可以是:1,300接满倒入500;2,300接满倒入500,使500倒满,300剩100;3,500全倒掉;4,300把100倒进500;5,300接满倒入500,这样500里就有400ml水~(啊搜相关看到的,写完才发现是几年前的了drl)
点赞 回复 分享
发布于 2023-12-14 15:11 香港

相关推荐

#&nbsp;滴滴#&nbsp;一面1.&nbsp;自我介绍2.&nbsp;url在输入浏览器的过程中经历了什么3.&nbsp;你理解的闭包,闭包的应用场景和会引起什么4.&nbsp;日常使用的优化办法5.&nbsp;webpack优化办法6.&nbsp;强缓存和协商缓存7.&nbsp;讲一下项目中低代码部分实现逻辑8.&nbsp;讲讲浏览器的渲染过程9.&nbsp;讲讲在浏览器渲染过程中JS是在什么时候执行的10.&nbsp;代码题输出:1)&nbsp;最后I’am&nbsp;here文字的大小,你怎么判断的```html&nbsp;&lt;style&nbsp;type=&amp;quot;text/css&amp;quot;&gt;&nbsp;&nbsp;&nbsp;&nbsp;#a&nbsp;{font-size:12px}&nbsp;&nbsp;&nbsp;&nbsp;div&nbsp;p{&nbsp;font-size:13px&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;.a&nbsp;.b&nbsp;.c{&nbsp;font-size:15px&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;#b{&nbsp;font-size:15px&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;div&nbsp;.c{&nbsp;font-size:15px&nbsp;}&lt;/style&gt;&lt;div&nbsp;id=&amp;quot;a&amp;quot;&nbsp;class=&amp;quot;a&amp;quot;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div&nbsp;id=&amp;quot;b&amp;quot;&nbsp;class=&amp;quot;b&amp;quot;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;p&nbsp;id=&amp;quot;c&amp;quot;&nbsp;class=&amp;quot;c&amp;quot;&gt;I’am&nbsp;here&lt;/p&gt;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt;&lt;/div&gt;```css的选择器优先级,id选择器大于class选择器大于标签选择器。2)&nbsp;这个li会呈现什么效果什么颜色,为什么?```html&lt;style&gt;&nbsp;&nbsp;&nbsp;&nbsp;#header&nbsp;.nav&nbsp;&gt;&nbsp;li&nbsp;a:hover&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;color:&nbsp;green;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;.nav&nbsp;li&nbsp;a:hover&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;color:&nbsp;red;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&lt;/style&gt; &nbsp;&nbsp;&lt;div&nbsp;id=&amp;quot;header&amp;quot;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ul&nbsp;class=&amp;quot;nav&amp;quot;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;&lt;a&nbsp;href=&amp;quot;#&amp;quot;&gt;Link&nbsp;1&lt;/a&gt;&lt;/li&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;&lt;a&nbsp;href=&amp;quot;#&amp;quot;&gt;Link&nbsp;2&lt;/a&gt;&lt;/li&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;&lt;a&nbsp;href=&amp;quot;#&amp;quot;&gt;Link&nbsp;3&lt;/a&gt;&lt;/li&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/ul&gt;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ul&nbsp;class=&amp;quot;nav&amp;quot;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;&lt;a&nbsp;href=&amp;quot;#&amp;quot;&gt;Link&nbsp;4&lt;/a&gt;&lt;/li&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;&lt;a&nbsp;href=&amp;quot;#&amp;quot;&gt;Link&nbsp;5&lt;/a&gt;&lt;/li&gt;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/ul&gt;```3)这个过程的结果是什么,怎么让其输出0,1,2…```jsxfor&nbsp;(var&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;6;&nbsp;i++)&nbsp;{&nbsp;&nbsp;setTimeout(()&nbsp;=&gt;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;console.log(i)&nbsp;&nbsp;})} ```结果输出6个6,改变var为let可以变为0,1,2,3,4,5还可以用:立即执行函数表达式```jsxfor&nbsp;(var&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;6;&nbsp;i++)&nbsp;{&nbsp;&nbsp;(function(i)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;setTimeout(()&nbsp;=&gt;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console.log(i);&nbsp;&nbsp;&nbsp;&nbsp;},&nbsp;0);&nbsp;&nbsp;})(i);}```4)这个结果是什么```jsxconst&nbsp;obj&nbsp;=&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;a:&nbsp;1,&nbsp;&nbsp;&nbsp;&nbsp;b:&nbsp;function(){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;setTimeout(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function(){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console.log(this.a)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)&nbsp;&nbsp;&nbsp;&nbsp;}}obj.b()```答案,指向的是window上的a那要怎么让this指向obj呢?1.&nbsp;使用箭头函数```jsxconst&nbsp;obj&nbsp;=&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;a:&nbsp;1,&nbsp;&nbsp;&nbsp;&nbsp;b:&nbsp;function()&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;setTimeout(()&nbsp;=&gt;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console.log(this.a);&nbsp;//&nbsp;这里的&nbsp;`this`&nbsp;指向&nbsp;obj&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});&nbsp;&nbsp;&nbsp;&nbsp;}};obj.b();&nbsp;//&nbsp;输出&nbsp;1```1.&nbsp;使用bind```jsxconst&nbsp;obj&nbsp;=&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;a:&nbsp;1,&nbsp;&nbsp;&nbsp;&nbsp;b:&nbsp;function()&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;setTimeout(function()&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console.log(this.a);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}.bind(this));&nbsp;//&nbsp;显式绑定&nbsp;this&nbsp;到&nbsp;obj&nbsp;&nbsp;&nbsp;&nbsp;}};obj.b();&nbsp;//&nbsp;输出&nbsp;1```1.&nbsp;使用变量保存(回答的这个)```jsxconst&nbsp;obj&nbsp;=&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;a:&nbsp;1,&nbsp;&nbsp;&nbsp;&nbsp;b:&nbsp;function()&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;self&nbsp;=&nbsp;this;&nbsp;//&nbsp;保存&nbsp;this&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;setTimeout(function()&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console.log(self.a);&nbsp;//&nbsp;使用保存的&nbsp;this&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});&nbsp;&nbsp;&nbsp;&nbsp;}};obj.b();&nbsp;//&nbsp;输出&nbsp;1```5)将下面的代码转换为clas的形式```jsxfunction&nbsp;Modal(x,y){&nbsp;&nbsp;&nbsp;&nbsp;this.x=x;&nbsp;&nbsp;&nbsp;&nbsp;this.y=y;}Modal.prototype.z=10;Modal.prototype.getX=function(){&nbsp;&nbsp;&nbsp;&nbsp;console.log(this.x);}Modal.prototype.getY=function(){&nbsp;&nbsp;&nbsp;&nbsp;console.log(this.y);}Modal.n=200;Modal.setNumber=function(n){&nbsp;&nbsp;&nbsp;&nbsp;this.n=n;};let&nbsp;m&nbsp;=&nbsp;new&nbsp;Model(10,20);``````jsxclass&nbsp;Modal&nbsp;{&nbsp;&nbsp;z&nbsp;=&nbsp;10;&nbsp;&nbsp;//&nbsp;构造函数&nbsp;&nbsp;constructor(x,&nbsp;y)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;this.x&nbsp;=&nbsp;x;&nbsp;&nbsp;&nbsp;&nbsp;this.y&nbsp;=&nbsp;y;&nbsp;&nbsp;}&nbsp;&nbsp;//&nbsp;实例方法&nbsp;&nbsp;getX()&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;console.log(this.x);&nbsp;&nbsp;}&nbsp;&nbsp;getY()&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;console.log(this.y);&nbsp;&nbsp;}&nbsp;&nbsp;//&nbsp;静态属性&nbsp;&nbsp;static&nbsp;n&nbsp;=&nbsp;200;&nbsp;&nbsp;//&nbsp;静态方法&nbsp;&nbsp;static&nbsp;setNumber(n)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;this.n&nbsp;=&nbsp;n;&nbsp;&nbsp;}}//&nbsp;创建实例let&nbsp;m&nbsp;=&nbsp;new&nbsp;Modal(10,&nbsp;20);```6)对象查找,说下思路```jsxfind(obj,&nbsp;str),满足:var&nbsp;obj&nbsp;=&nbsp;{a:{b:{c:1}}};find(obj,&#39;a.b.c&#39;)&nbsp;//返回1find(obj,&#39;a.d.c&#39;)&nbsp;//返回undefined&nbsp;```答案:```jsxvar&nbsp;obj&nbsp;=&nbsp;{&nbsp;a:&nbsp;{&nbsp;b:&nbsp;{&nbsp;c:&nbsp;1&nbsp;}&nbsp;}&nbsp;};const&nbsp;find&nbsp;=&nbsp;(obj,&nbsp;str)&nbsp;=&gt;&nbsp;{&nbsp;&nbsp;if&nbsp;(!(obj&nbsp;!==&nbsp;null&nbsp;&amp;amp;&amp;amp;&nbsp;typeof&nbsp;obj&nbsp;===&nbsp;&amp;quot;object&amp;quot;))&nbsp;return;&nbsp;&nbsp;const&nbsp;arr&nbsp;=&nbsp;str.split(&amp;quot;.&amp;quot;);&nbsp;&nbsp;console.log(arr);&nbsp;&nbsp;const&nbsp;result&nbsp;=&nbsp;arr.reduce((pre,&nbsp;cur)&nbsp;=&gt;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;pre[cur];&nbsp;&nbsp;},&nbsp;obj);&nbsp;&nbsp;return&nbsp;result;};find(obj,&nbsp;&amp;quot;a.b.c&amp;quot;);&nbsp;//返回1find(obj,&nbsp;&amp;quot;a.d.c&amp;quot;);```反问:建议需要注意项目打包流程上的东西,以及优化相关,webpack,项目部署方面的东西。部门主要使用技术栈:vue2+webpack,node,axios,部分新项目vue3#&nbsp;二面1.&nbsp;自我介绍2.&nbsp;怎么学习前端的,学习前端契机3.&nbsp;讲一下项目里面的难点4.&nbsp;手写,实现一下简历中第一个响应式5.&nbsp;讲一下HTTP的五层结构6.&nbsp;tcp和udp的应用场景7.&nbsp;说一下TCP的拥塞控制
点赞 评论 收藏
分享
7 61 评论
分享
牛客网
牛客企业服务