起因
2021-03-21,早晨八点到十点,我加入了腾讯的第一轮口试,方向为前端/UI方向。通过了两个小时的答题,五道题最终我做进去三道题,我对我本人这次口试的后果是不称心的。在上面我简略解说一下面试的五道题,本人得胜的起因,以及从这次面试中悟出的情理。
想写一篇复盘文章,然而太多了,怕本人始终拖下去始终写不完,就先写写本人的新的吧。
小编之前公布无关前端面试的文章,点击题目即可浏览喽
题目:Vue面试题
题目:前端面试之问到promise
题目:怎么判断面试者是否有扎实的前端根底
口试流程分享
这次腾讯口试在牛客网进行,时长为两个小时。本次口试为五道编程题。在考试前,须要提前登录确认考生的身份,以及查看你的摄像头等等,而后前一个诚信保证书,就能够期待考试了。 考试开始,他会先给你两道例题,让你明确如何在acm模式中自行的输入输出数据。两个小时工夫到了,就会主动排队提交试卷。
倡议大家提前登陆相熟一下流程,例如acm模式如何提交代码。而后代码是能够复制到本地调试的,如何复制到本地调试等等,须要本人提前相熟一下。
口试复盘
第一题:实现有限滚动
DOM和javascript常识综合题
代码挖空补全
题目:要求补全代码,当div滑动条离最上面间隔小于100px时,则插入一个元素进去,实现有限滚动。
question1.vercel.app 我实现的答案。
做题感触
这道题不算很难,然而在写上面的代码时候,因为不太熟悉scrollTop
,scrollHeight
,clientHeight
等等,所以最初代码始终过不了,浏览器还会卡住。可能和我的实现与判题零碎无关。而后一开始做题很慌,能犯的谬误都犯了。
const scrollTop = container.scrollTop;const contentHeight = container.scrollHeight;const height = container.clientHeight;const shouldTrigger = contentHeight - height - scrollTop <= distance复制代码
我倡议将如果牛客网的代码不太好调试就立即复制到本地调试。
第二题:一个正整数n起码多少步能力变为0
他能够做的变换:
- n - 1
- 如果n是2的倍数:n / 2
- 如果n是3的倍数:n / 3
数据范畴:
- count:1到10000
- n:1到2的31次幂
输出示范
21010复制代码
输入示范
44复制代码
我的答案:
- 答案1不能间接运行,因为是从规范输出流输入流读取的数据(浏览器)。
- 函数版本能够间接运行。
动静布局dp 剪枝
这道题我第一眼看上去认为是一道简略的动静布局,但我口试时始终没有通过。
当初想明确了。这道题是一道简略的动静布局,只是须要剪枝。咱们能够察看到n的最大值能够为2的31幂,所以如果咱们间接从顶向下不剪枝必定是会爆栈的。(话说为什么我口试的时候也看到数据范畴了,为什么没有想到呢)当然这道题也不能自底向上了,因为数据量太大了。
咱们自顶向下,而后应用备忘录记录数据。如果是2的倍数或者3的倍数就不必计算n-1的状况了。
第三题:01背包?
有一个行数r,列数c的矩阵。抉择矩阵中的值,使列相加为c的状况下,使值相加最大。每行只能抉择一次。
第四题:计算运算表达式的值
输出示范
"1+4/2-1"复制代码
输入示范
2复制代码
这题我认为他是在考javascript的api(eval),因为规定只能用javascript答题。
所以我间接eval运行了。
第五题:将中文数字字符串转换成数字
数据范畴:不超过1亿
考点:法则的发现
输出一:“一千三”
输入一:1300
输出二:“一千三百零一”
输入二:1301
输出三:“十二”
输入三:12
输出四:“一千三百二十一万一千三百二十一”
输入四:13211321
这道题不考数据结构,就考能不能发现法则,解决问题。我考试前看见过这道题,然而没有细看他们是怎么解答的。
最终经验含辛茹苦写进去了。
这里是答案
思路:
- 咱们要将文字转换成数字,所以须要一个映射关系。
- 十百千万都是单位,所以也要映射一下,留神零的思考,零我把它当作单位而不是数字(须要非凡解决)例子:一千三百零一。
- 非凡状况的思考:例如最初一个数没有单位,一千三。
- 数据范畴在一亿以内,所以万这个单位能够特殊化。呈现万就把转换中的后果乘10000.
由这次的腾讯面试,总结了一份腾讯面试题材料,大家须要的请自取。点击这支付腾讯前端面试题
总结
我题目取的是人生须要一点deadline,我之所以这样说,因为我口试的时候切实是太紧张了。照理说这5个题就两头第三题会难一点,然而最初2个小时我写进去了4个题。我想和我平时训练有余无关。我这里说的训练有余,即指本人题刷的比拟少,更指本人做leetcode的时候没有为本人设置deadline。平时做题慢吞吞的,始终在调试,切实做不起了还能够看看他们的题解。ac完了代码我还会去把本人的代码化简,但这些都不是最重要的。最重要的是有一个和面试最类似的环境。能够在最短的工夫内想出做题的思路,能最疾速的,最清晰的写出可能ac的代码。而不应该关怀这个式子是不是曾经化简到最简了。
因而咱们要为本人设置deadline,平时后缓和起来,到本人去面试的时候,到这个实在的环境,就不这么缓和了。例如leetcode有模仿面试性能,大家能够去模仿面试一下。而后面试都是在牛客上进行,所以不能始终依赖leetcode,也要在牛客网上训练(尽管这个平台不太好用,leetcode好用)。不然到本人面试的时候像我一样平台都不相熟就死翘翘了。
喜爱这篇文章的小伙伴们请点赞+评论反对下哦,也祝在找工作在面试的小伙伴们顺顺利利,克敌制胜!