腾讯前端笔试心得:人生须要一点deadline

原由

2021-03-21,晚上八点到十点,我参加了腾讯的第一轮笔试,方向为前端/UI方向。通过了两个小时的答题,五道题最终我作出来三道题,我对我本身此次笔试的结果是不满意的。在下面我简单讲解一下面试的五道题,本身失利的缘由,以及从此次面试中悟出的道理。javascript

想写一篇复盘文章,可是太多了,怕本身一直拖下去一直写不完,就先写写本身的新的吧。前端

小编以前发布有关前端面试的文章,点击标题便可阅读喽
标题:Vue面试题
标题:前端面试之问到promise
标题:怎样判断面试者是否有扎实的前端基础java

笔试流程分享

此次腾讯笔试在牛客网进行,时长为两个小时。本次笔试为五道编程题。在考试前,须要提早登陆确认考生的身份,以及检查你的摄像头等等,而后前一个诚信保证书,就能够等待考试了。 考试开始,他会先给你两道例题,让你明确如何在acm模式中自行的输入输出数据。两个小时时间到了,就会自动排队提交试卷。面试

建议你们提早登录熟悉一下流程,例如acm模式如何提交代码。而后代码是能够复制到本地调试的,如何复制到本地调试等等,须要本身提早熟悉一下。编程

笔试复盘

第一题:实现无限滚动

DOM和javascript知识综合题api

代码挖空补全promise

题目:要求补全代码,当div滑动条离最下面距离小于100px时,则插入一个元素进去,实现无限滚动。浏览器

question1.vercel.app 我实现的答案。数据结构

作题感觉

这道题不算很难,可是在写下面的代码时候,由于不太熟悉scrollTopscrollHeight,clientHeight等等,因此最后代码一直过不了,浏览器还会卡住。可能和个人实现与判题系统有关。而后一开始作题很慌,能犯的错误都犯了。app

const scrollTop = container.scrollTop;
const contentHeight = container.scrollHeight;
const height = container.clientHeight;
const shouldTrigger = contentHeight - height - scrollTop <= distance

复制代码

我建议将若是牛客网的代码不太好调试就马上复制到本地调试。

第二题:一个正整数n最少多少步才能变为0

他能够作的变换:

  1. n - 1
  2. 若是n是2的倍数:n / 2
  3. 若是n是3的倍数:n / 3

数据范围:

  • count:1到10000
  • n:1到2的31次幂

输入示范

2
10
10
复制代码

输出示范

4
4
复制代码

个人答案:

  1. 答案1不能直接运行,由于是从标准输入流输出流读取的数据(浏览器)。
  2. 函数版本能够直接运行。
动态规划dp 剪枝

这道题我第一眼看上去觉得是一道简单的动态规划,但我笔试时一直没有经过。

如今想明白了。这道题是一道简单的动态规划,只是须要剪枝。咱们能够观察到n的最大值能够为2的31幂,因此若是咱们直接从顶向下不剪枝确定是会爆栈的。(话说为何我笔试的时候也看到数据范围了,为何没有想到呢)固然这道题也不能自底向上了,由于数据量太大了。

咱们自顶向下,而后使用备忘录记录数据。若是是2的倍数或者3的倍数就不用计算n-1的状况了。

第三题:01背包?

有一个行数r,列数c的矩阵。选择矩阵中的值,使列相加为c的状况下,使值相加最大。每行只能选择一次。

第四题:计算运算表达式的值

输入示范

"1+4/2-1"
复制代码

输出示范

2
复制代码

这题我认为他是在考javascript的api(eval),由于规定只能用javascript答题。

因此我直接eval运行了。

第五题:将中文数字字符串转换成数字

数据范围:不超过1亿

考点:规律的发现
  1. 输入一:“一千三”

    输出一:1300

  2. 输入二:“一千三百零一”

    输出二:1301

  3. 输入三:“十二”

    输出三:12

  4. 输入四:“一千三百二十一万一千三百二十一”

    输出四:13211321

这道题不考数据结构,就考能不能发现规律,解决问题。我考试前看见过这道题,可是没有细看他们是怎么解答的。

最终经历千辛万苦写出来了。

这里是答案

思路:

  1. 咱们要将文字转换成数字,因此须要一个映射关系。
  2. 十百千万都是单位,因此也要映射一下,注意零的思考,零我把它看成单位而不是数字(须要特殊处理)例子:一千三百零一。
  3. 特殊状况的考虑:例如最后一个数没有单位,一千三。
  4. 数据范围在一亿之内,因此万这个单位能够特殊化。出现万就把转换中的结果乘10000.

由此次的腾讯面试,总结了一份腾讯面试题资料,你们须要的请自取。点击这领取腾讯前端面试题

总结

我标题取的是人生须要一点deadline,我之因此这样说,由于我笔试的时候实在是太紧张了。照理说这5个题就中间第三题会难一点,可是最后2个小时我写出来了4个题。我想和我平时训练不足有关。我这里说的训练不足,即指本身题刷的比较少,更指本身作leetcode的时候没有为本身设置deadline。平时作题慢悠悠的,一直在调试,实在作不起了还能够看看他们的题解。ac完了代码我还会去把本身的代码化简,但这些都不是最重要的。最重要的是有一个和面试最类似的环境。能够在最短的时间内想出作题的思路,能最快速的,最清晰的写出可以ac的代码。而不该该关心这个式子是否是已经化简到最简了。

所以咱们要为本身设置deadline,平时后紧张起来,到本身去面试的时候,到这个真实的环境,就不这么紧张了。例如leetcode有模拟面试功能,你们能够去模拟面试一下。而后面试都是在牛客上进行,因此不能一直依赖leetcode,也要在牛客网上训练(虽然这个平台不太好用,leetcode好用)。否则到本身面试的时候像我同样平台都不熟悉就死翘翘了。

喜欢这篇文章的小伙伴们请点赞+评论支持下哦,也祝在找工做在面试的小伙伴们顺顺利利,旗开得胜!

相关文章
相关标签/搜索