最后
四轮技术面+一轮hr面结束,学习到了不少,面试也是一个学习检测自己的过程,面试前大概复习了 一周的时间,把以前的代码看了一下,字节跳动比较注重算法,面试前刷了下leetcode和剑指offer, 也刷了些在牛客网上的面经。大概就说这些了,写代码去了~
祝大家都能收获大厂offer~
篇幅有限,仅展示部分内容
这次腾讯笔试在牛客网进行,时长为两个小时。本次笔试为五道编程题。在考试前,需要提前登录确认考生的身份,以及检查你的摄像头等等,然后前一个诚信保证书,就可以等待考试了。 考试开始,他会先给你两道例题,让你明确如何在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次幂
输入示范
2
10
10
复制代码
输出示范
4
4
复制代码
我的答案:
动态规划dp 剪枝
这道题我第一眼看上去以为是一道简单的动态规划,但我笔试时一直没有通过。
现在想明白了。这道题是一道简单的动态规划,只是需要剪枝。我们可以观察到n的最大值可以为2的31幂,所以如果我们直接从顶向下不剪枝肯定是会爆栈的。(话说为什么我笔试的时候也看到数据范围了,为什么没有想到呢)当然这道题也不能自底向上了,因为数据量太大了。
我们自顶向下,然后使用备忘录记录数据。如果是2的倍数或者3的倍数就不用计算n-1的情况了。
第三题:01背包?
有一个行数r,列数c的矩阵。选择矩阵中的值,使列相加为c的情况下,使值相加最大。每行只能选择一次。
第四题:计算运算表达式的值
输入示范
“1+4/2-1”
复制代码
输出示范
2
复制代码
最后
今天的文章可谓是积蓄了我这几年来的应聘和面试经历总结出来的经验,干货满满呀!如果你能够一直坚持看到这儿,那么首先我还是十分佩服你的毅力的。不过光是看完而不去付出行动,或者直接进入你的收藏夹里吃灰,那么我写这篇文章就没多大意义了。所以看完之后,还是多多行动起来吧!
可以非常负责地说,如果你能够坚持把我上面列举的内容都一个不拉地看完并且全部消化为自己的知识的话,那么你就至少已经达到了中级开发工程师以上的水平,进入大厂技术这块是基本没有什么问题的了。