多益网络(NLP面经)认清自己了orz.

#24届软开秋招面试经验大赏##如何判断面试是否凉了##找不到实习会影响秋招吗#
面试16:40开始,周五下班前面试。害,还去酒店开了钟点房准备面试。
我知道自己很菜,但还是想最后试一下算法,现实给了重重一击,转开发或者取银行了,此生不会碰算法
出奇的项目一个没问orz....  可能项目别人看不上。
一个男面试官,成熟胡茬,看着就像技术大佬。
1.自我介绍(我说多益是十大网络游戏公司直接打听我的介绍了,隔着屏幕的尴尬orz...)
2.用啥语言较多:回java和python----为手撕代码做铺垫
3.手撕代码:用数组实现队列,有点小紧张,写的慢,被催了,orz...  最后被叫停了,惨
4.了解残差网络吗,可以手撕一个残差网络块吗?    都是搬砖,我咋写,回答不会写
5.什么框架用的多,回:pytorch;追问:好在哪里? 懵了,不知道咋回答,一直用还不知道人家好在哪里
6.神经网路训练时,GPU显存里面存的是什么?
7.了解并行训练吗,原理是什么?
然后面试官看我确实没啥水平,就说面试结束了,表示了感谢;40分钟面了20分钟不到就结束啦!无能的自嘲orz...

总的来说,这是算法面的第二次正式面试,我还是挺认真对待的,网上多益的风评确实不好,但还是挺感谢多益给我这个机会的。不否认大环境差(还是硬实力不够)但进一步也认清了自己的水平,论文水完了,导师放的晚,没机会出去实习,公司的需求真的和学校学的不一样,有机会出去实习的牛子们一定要出去,实习经历对找工作还是蛮重要的#我的求职思考#

守好一亩三分地,万丈高楼平地起!后面加油吧

----------------------
面试结果更新,意料之中吧
全部评论
实习是一方面,但大部分人都还是没有实习的,说实话这些问题应该是比较基础的了resnet模块那个就不说了,pytorch那个是因为动态图,相比tf方便搭模型和debug,社区维护也比较好,坑比较少;NN训练时GPU里存网络参数、参数梯度、前向激活、优化器参数;并行训练要看是数据并行还是哪种分布式并行,比如流水线并行,这些都要了解下。这些老哥平时可以多留意加强下,加油
8 回复 分享
发布于 2023-10-21 21:44 北京
哎,周五我也有这个多益的算法面试了。。但我原理上的也不太行,虽然我在公司实习过算法,但都是把别人的模型用在公司业务上。。噗。。很慌,但和你一样,虽然知道自己不会过,但还是感谢这次机会了。
点赞 回复 分享
发布于 2023-10-23 17:56 上海
跟我问的还挺像,我也说不会哈哈哈
点赞 回复 分享
发布于 2023-10-21 20:02 湖北
多益还有hlp岗位,没想到😂
点赞 回复 分享
发布于 2023-10-20 18:01 广东

相关推荐

04-09 21:10
武汉大学 Java
az77927792:1:用个栈去维护出连续0,1的长度,然后去取连续1的最大长度,取不到或者取到了但不等于9就是unlucky,否则就是lucky 2:先按不花钱的最大糖果数每个人都去拿,如果此时m已经<=0了直接输出0,否则剩下的一个人去换,因为白嫖的已经拿满了,因此只要多拿就得多用劵,所以上取整即可 3:先特判n!=m的情况,然后对于n==m的情况,先计算s1每个数字的个数nums,然后从高位往低位递归s2,bool dfs(nums,s2,p) 对于每一个位置p,能取到与s2[p]相同的就先取,然后去递归p+1,如果返回true说明取的没问题,否则先还原状态,然后从s2[p]-1遍历到1去找第一个nums[k]>=1的数k,找不到可用的就返回false,找到了就直接用这个数k,后面的直接按从大到小排列的方式把nums里的剩余的数全用了,然后返回true,如果递归到p==s2.size()的位置也返回true(这儿是能刚好组成s2的情况),答案可以在递归过程中去维护 4:按减免额b[i]从大到小排序即可,每张券去找第一个大于等a[i]的商品p[j],可以用multiset和multiset自带的成员函数lower_bound去维护(直接使用普通的lower_bound可能会超时),找不到这张券就不要了,找了记得把商品删了
投递拼多多集团-PDD等公司10个岗位 笔试
点赞 评论 收藏
分享
04-20 21:45
已编辑
上海交通大学 C++
第一题&nbsp;k路字符串&nbsp;优先级队列第二题&nbsp;裸的拓扑排序,注意判断是否有环第三题&nbsp;一开始直接写的最长上升子序列(严格),WA,于是推断山的高度必须是整数,于是对nums[i]-i求最长上升子序列(不严格)AC第四题&nbsp;样例过,提交之后过0%样例,没看出来哪里错了,贴一下代码&nbsp;#include&nbsp;using&nbsp;namespace&nbsp;std;int&nbsp;main()&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;//数据范围来说,至少是需要n方或者更好的算法&nbsp;&nbsp;&nbsp;&nbsp;//注意读题,首先不是严格大于,其次需要注意交换需要前提条件,即a[i]&nbsp;&gt;&nbsp;x,这意味着交换过程中,x的数值是原来越大的,和x交换的值的门槛也是越来越大,隐含的条件就是如果小于x的数字没有有序,那么久没办法完成操作了&nbsp;&nbsp;&nbsp;&nbsp;//手玩一下:&nbsp;&nbsp;&nbsp;&nbsp;//81&nbsp;324&nbsp;218&nbsp;413&nbsp;324&nbsp;x&nbsp;=&nbsp;18&nbsp;如果与i&gt;=1的位置交换,剩下的18没人可以换走,直接不可行&nbsp;&nbsp;&nbsp;&nbsp;//18&nbsp;324&nbsp;218&nbsp;413&nbsp;324&nbsp;x&nbsp;=&nbsp;81&nbsp;同理,如果与i&nbsp;&gt;=&nbsp;2的位置交换,剩下的81没有可以换走,直接不可行&nbsp;&nbsp;&nbsp;&nbsp;//18&nbsp;81&nbsp;218&nbsp;413&nbsp;324&nbsp;x&nbsp;=&nbsp;324&nbsp;我们选择将413与324交换&nbsp;&nbsp;&nbsp;&nbsp;//18&nbsp;81&nbsp;218&nbsp;324&nbsp;324&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//再来领悟一下样例&nbsp;&nbsp;&nbsp;&nbsp;//0&nbsp;2&nbsp;3&nbsp;5&nbsp;4&nbsp;x&nbsp;=&nbsp;1&nbsp;当前发现后面有一个4在捣乱,我们要想办法把它调整下来,但是要调整,就说明当前x&nbsp;=&nbsp;1需要换上去到某一个位置,也就只能是和2换,这一步是固定的&nbsp;&nbsp;&nbsp;&nbsp;//0&nbsp;1&nbsp;3&nbsp;5&nbsp;4&nbsp;x&nbsp;=&nbsp;2&nbsp;同样的,捣乱的4还没有解决,所以继续要调整,当前x&nbsp;=&nbsp;2只能换在begin,故而&nbsp;&nbsp;&nbsp;&nbsp;//0&nbsp;1&nbsp;2&nbsp;5&nbsp;4&nbsp;x&nbsp;=&nbsp;3&nbsp;begin变成了5的下标&nbsp;&nbsp;&nbsp;&nbsp;//0&nbsp;1&nbsp;2&nbsp;3&nbsp;4&nbsp;x&nbsp;=&nbsp;5&nbsp;此时发现已经解决//再来领悟一下输出-1的样例&nbsp;&nbsp;&nbsp;&nbsp;//11&nbsp;9&nbsp;x&nbsp;=&nbsp;10&nbsp;当前begin&nbsp;=&nbsp;0&nbsp;end&nbsp;=&nbsp;1,但是注意到nums[end]&nbsp;&lt;&nbsp;x,最终不可以被移动,所以已经寄了&nbsp;&nbsp;&nbsp;&nbsp;//以上过程说明:对于小于x的内容,如果是已经有序地位于开头,那么就已经不可行了&nbsp;&nbsp;&nbsp;&nbsp;//对于大于x的无序的内容,如果存在多个,比如10&nbsp;20&nbsp;30&nbsp;40&nbsp;6&nbsp;4&nbsp;x=&nbsp;3,其中6和4都是乱序的,但似乎此时并不需要决定和其中的谁交换,只能从begin开始交换&nbsp;&nbsp;&nbsp;&nbsp;//3&nbsp;20&nbsp;30&nbsp;40&nbsp;6&nbsp;4&nbsp;x&nbsp;=&nbsp;10&nbsp;&nbsp;&nbsp;&nbsp;//3&nbsp;10&nbsp;30&nbsp;40&nbsp;6&nbsp;4&nbsp;x&nbsp;=&nbsp;20&nbsp;&nbsp;&nbsp;&nbsp;//3&nbsp;10&nbsp;20&nbsp;40&nbsp;6&nbsp;4&nbsp;x&nbsp;=&nbsp;30&nbsp;&nbsp;&nbsp;&nbsp;//3&nbsp;10&nbsp;20&nbsp;30&nbsp;6&nbsp;4&nbsp;x&nbsp;=&nbsp;40&nbsp;爆炸&nbsp;&nbsp;&nbsp;&nbsp;//至此大胆提出假设:先处理得到其中单增的区间&nbsp;&nbsp;&nbsp;&nbsp;//0&nbsp;2&nbsp;3&nbsp;5&nbsp;4&nbsp;x&nbsp;=&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;//其中比x小的部分已经确保落在该有的位置上了&nbsp;&nbsp;&nbsp;&nbsp;//0&nbsp;[2&nbsp;3&nbsp;5]&nbsp;[4]&nbsp;x&nbsp;=&nbsp;1&nbsp;那么我们会把{[2,&nbsp;3,&nbsp;5]&nbsp;x&nbsp;=&nbsp;1}变化为{[1&nbsp;2&nbsp;3]&nbsp;x&nbsp;=&nbsp;5},即相当于原来有序的空间中最大的没了,最小的变成原有x。花费是有序空间大小&nbsp;&nbsp;&nbsp;&nbsp;//然后x变成了原有空间中最大的那个,然后继续这样扫描//再来手玩一下:&nbsp;&nbsp;&nbsp;&nbsp;//4&nbsp;5&nbsp;6&nbsp;7&nbsp;8&nbsp;9&nbsp;10&nbsp;3&nbsp;x&nbsp;=&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//{[4&nbsp;5&nbsp;6&nbsp;7&nbsp;8&nbsp;9&nbsp;10]&nbsp;x&nbsp;=&nbsp;1}-&gt;{[1&nbsp;4&nbsp;5&nbsp;6&nbsp;7&nbsp;8&nbsp;9]&nbsp;x&nbsp;=&nbsp;10}&nbsp;由于次大的9还是大于无序的3,所以没办法&nbsp;&nbsp;&nbsp;&nbsp;//总结思路:线性扫描,找到从开始到现在最长的有序集(其中小于x的部分不统计长度)int&nbsp;t;&nbsp;&nbsp;&nbsp;&nbsp;cin&gt;&gt;t;&nbsp;&nbsp;&nbsp;&nbsp;while(t--)&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;n,&nbsp;x;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin&gt;&gt;n&gt;&gt;x;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vector&nbsp;nums(n);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;n;&nbsp;++i)&nbsp;cin&gt;&gt;nums[i];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;begin&nbsp;=&nbsp;0,&nbsp;end&nbsp;=&nbsp;0,&nbsp;costBegin&nbsp;=&nbsp;-1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;ans&nbsp;=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bool&nbsp;flag&nbsp;=&nbsp;true;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(begin&nbsp;&lt;&nbsp;n)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//end&nbsp;begin&nbsp;costBegin&nbsp;x&nbsp;ans&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(end&nbsp;+&nbsp;1&nbsp;&lt;&nbsp;n&nbsp;&amp;amp;&amp;amp;&nbsp;nums[end&nbsp;+&nbsp;1]&nbsp;&gt;=&nbsp;nums[end])//扫描到end,并更新end&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(costBegin&nbsp;==&nbsp;-1&nbsp;&amp;amp;&amp;amp;&nbsp;nums[end]&nbsp;&gt;&nbsp;x)&nbsp;costBegin&nbsp;=&nbsp;end;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;++end;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;cout&lt;&lt;&amp;quot;begin&nbsp;=&nbsp;&amp;quot;&lt;&lt;&lt;&amp;quot;,&nbsp;end&nbsp;=&nbsp;&amp;quot;&lt;&lt;&lt;&amp;quot;,&nbsp;costBegin&nbsp;=&nbsp;&amp;quot;&lt;&lt;&lt;&#39;\n&#39;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//从begin&nbsp;到&nbsp;end&nbsp;递增,且从costBegin开始大于x&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(end&nbsp;==&nbsp;n&nbsp;-&nbsp;1)&nbsp;break;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(begin&nbsp;!=&nbsp;end)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(nums[end&nbsp;+&nbsp;1]&nbsp;&lt;&nbsp;nums[end&nbsp;-&nbsp;1])&nbsp;{flag&nbsp;=&nbsp;false;&nbsp;break;}//没办法调整&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans&nbsp;+=&nbsp;(end&nbsp;-&nbsp;costBegin&nbsp;+&nbsp;1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x&nbsp;=&nbsp;nums[end];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;=&nbsp;begin&nbsp;=&nbsp;end&nbsp;+&nbsp;2;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;costBegin&nbsp;=&nbsp;-1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(nums[end]&nbsp;&gt;&nbsp;x&nbsp;&amp;amp;&amp;amp;&nbsp;x&nbsp;&lt;=&nbsp;nums[end&nbsp;+&nbsp;1])&nbsp;{++ans;&nbsp;x&nbsp;=&nbsp;nums[end];&nbsp;end&nbsp;=&nbsp;begin&nbsp;=&nbsp;end&nbsp;+&nbsp;2;&nbsp;costBegin&nbsp;=&nbsp;-1;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;{flag&nbsp;=&nbsp;false;&nbsp;break;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(flag)&nbsp;cout&lt;&lt;&lt;&#39;\n&#39;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;cout&lt;&lt;&amp;quot;-1\n&amp;quot;;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;}
投递拼多多集团-PDD等公司10个岗位
点赞 评论 收藏
分享
评论
5
19
分享

创作者周榜

更多
牛客网
牛客企业服务