24.9.5 腾讯音乐25秋招前端笔试记录

现在秋招已结束,整理发一些面经笔经,回馈一下牛客社区。

准备:
9.3
https://gw-c.nowcoder.com/api/sparta/jump/link?link=https%3A%2F%2Fwww.nowcoder.com%2Fexam%2Fcompany%3FcurrentTab%3Drecommand%26jobId%3D100%26selectStatus%3D0%26tagIds%3D9079
这里一共有六份真题试卷。
刚刚尝试在两个小时内回答腾讯音乐娱乐集团2024校园招聘-前端开发笔试(II),结果三道算法只做出了两道。后面看题解发现第三道直接暴力枚举就行了,第二道确实有点难度(甚至是暴力枚举都很难写)。但是我第三道由于被第二道搞没了心态,就直接放弃了(真在笔试的时候千万别放弃)。所以客观来看我还是能做出三道的。
刚才仔细看了一下第二道题,应该是属于动态规划,感觉其实也没有想象中那么难,可以认为是需要进行细致分类讨论的子问题分解递推求解。虽然我很菜,但是我要怀有题目不难的信念,这样才能保持心态良好。
发现有一套试卷打不开,那我这两天做四套题就好了。

9.4
今天大概就是继续刷题好了。做两套或者三套。
花了四个小时才做好了一套卷,这次是把全部题目都通过了。虽然花的时间超了,但是也给自己增加了信心:我是有能力把所有题目都做出来的,包括十分困难的动态规划!
但是动态规划的那道题目我就花了1小时40分钟,其实前面20分钟已经把递推公式写出来了。但是发现自己的编程还不够熟练,而且平台的js版本要滞后一些,有些方法用不了。做的过程中常把数组和字符串的方法搞混了,还有些方法直接忘了。比如我在想办法往数组的前面插入一个元素,想了10分钟竟没有办法,只好作弊查了一下MDN文档,原来要用splice(0,0,value)。
所以还要抄一抄数据结构来熟练一下。
后面这份试卷就没那么幸运了,而且最后一道看程序写结果的题目到现在也没有完全搞明白,只是知道有那么回事。其中比较奇妙的就是在函数内给没有声明过的变量赋值会变为globalThis的变量,而不管调用函数时的this是什么。
function test() {           
getName = function() { 
    Promise.resolve().then(() => console.log(0)); 
    console.log(1);               
};
return this; 
}
比如上面的getName会变为globalThis的一个变量(即全局变量)。不管是直接调用:
test(),还是用call或apply指定this:test.call(obj)或test.apply(obj),getName都会变为globalThis的一个变量,而不会绑定到obj。
此外,我认为TME2022校园招聘前端开发岗位笔试(II)的第一道算法的描述是错误的。“若当前节点为右儿子,会变成当前节点的双亲节点的右边相邻兄弟节点的左孩子节点。(如果当前节点的双亲节点已经是最右边的节点了,则会变成双亲节点同级的最左边的节点的左孩子节点)”,这里的右边相邻兄弟节点严格来说具有同一父节点的才算兄弟节点,不过测试用例则是把堂兄弟结点也算是兄弟节点了。

9.5
今天继续刷了TME的两套题目(实习生),有些题没做出来,不过也算是练了一下手感。
做了五套题,现在大概已经有了些感觉,起码打字速度加快了一些,对算法的实现流畅了一些。其中最大的进步可能就是初步领略了动态规划。有许多题目败在了算法复杂度上,确实是基本功不够扎实导致的,因为实在是想不出优化的办法,看了一下题解经常会看到一些人说xxx方法这样,希望我也有一天可以做到这样。不过按目前的情况来看大概要到春招的时候了。

笔试:
刚才完成了TME的笔试,ac了三道题(一共四道)。四道都是比较基础的算法题,但是由于脑子不太好使,第三道一开始想歪了(想到了动态规划那边),最后用偏暴力的递推来解,但是计算子方阵权值的长度选取一下没想清楚,导致没做出来。
不过想想还是算了,毕竟笔试AC了三道已经算是我历史上的最佳成绩了,毕竟之前算法一直是我的弱项,而之前的面试都是一道都做不出来的。这无疑给了我充分的信心:我不会被算法卡脖子!
全部评论

相关推荐

03-06 18:29
南京大学 Java
上来就是一小时四道题:1. 给定字符串version1和version2,如果version1>version2返回1,否则返回-1,相等返回0。不考虑前置0,例如“1.001”和“1.1”两者视为相等。2. 设计一个类snapshotArray(忘记名字了)类,支持操作:    - snapshotArray(int length):初始化长度为length的数据结构;    - set(int idx, int val):设置索引idx处的值为val;    - int snap():生成调用时刻的快照,返回快照id,快照id为调用snap的次数-1;    - int get(int snap_id, int idx):返回快照snap_id处索引位为idx的值。    要求:整体空间复杂度O(N^2),snap时间复杂度O(1)3. 定义特殊数组:任意两个相邻元素的奇偶性不同。给定一个数组和查询数组(每个元素对应一次查询),返回结果数组,表示每个查询的区间内是否为特殊数组。要求:时间复杂度为O(N)4. 命令行,统计/tmp/a.txt的行数;硬链接和符号链接的区别;命令行,查找日志文件中所有包含user_a的内容(实习+项目)1. Redis实现发布订阅模型的底层和kafka有什么区别?2. 消息丢失怎么办?3. 除了Redis发布订阅模型有没有了解过其他队列?kafka底层是什么样的架构?4. 如何使用kafka实现顺序消费?(给了个用户下单的场景,其中下单和支付将作为两个消息,如何保证下单和支付处理的先后顺序)5. mysql索引底层数据结构?为什么不使用红黑树?6. seata有哪些模式?八股:1. HTTPS如何做身份认证?2. 知道数字签名吗?3. 多线程模型和多进程模型的区别?多进程有什么多线程没有的优势?4. 知道字节序吗?5. 知道epoll吗?6. 设计模式了解哪些?适配器模式?一共面了两个小时出头,当场就感觉要挂了因为很多问题没有答好,但整整拖了我九天才挂,实在是有点恶心人了,再也不面wxg了
点赞 评论 收藏
分享
评论
1
6
分享

创作者周榜

更多
牛客网
牛客企业服务