失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 2024秋招腾讯wxg前端一面面经(只招实习转正)

2024秋招腾讯wxg前端一面面经(只招实习转正)

时间:2024-02-29 10:59:26

相关推荐

2024秋招腾讯wxg前端一面面经(只招实习转正)

文章目录

前言流程算法题实现思路小结

前言

总用时:1h 55min

注意事项:wxg只收实习转正,需要至少先实习60天,地点在广州部门,所以需要确定好时间事宜

特别煎熬,特别难,绞尽脑汁,完全没问html和css,时长很久所以有一些不记得了,但是因为完全顺着逻辑就问下去了,所以能想起来大部分。

问了很多底层、操作系统等等的(真的快忘完了,复习也没复习到那些部分,也有可能一开始就没特别搞清楚),上来手撕三道算法题,感觉把毕生所学都用上了,虽然绩点高但知识没有深入的后果be like

流程

面试官自我介绍,我自我介绍手撕算法:快速排序,实现 + 讲解思路,时间复杂度是多少,怎么计算的时间复杂度手撕算法:二叉树从上到下取和最多线路的和(且取的每个元素不能是相邻两个叶子节点),时间复杂度手撕算法:两个二叉树判断相同,数据结构如下,时间复杂度,还有其他方法吗?

TreeNode {left: Noderight: Nodeval: Number}

实际开发中为什么要避免用递归?递归会导致什么问题?堆栈溢出是什么溢出?什么是堆,什么是栈?这里的堆栈和操作系统的堆栈一样吗?malloc()函数或数据回收会把数据放进堆还是栈?栈存什么,堆存什么?栈是先进后出还是先进先出?队列呢?你对你简历上写的技术栈哪个比较熟悉?读过Vue源码吗?读的文档还是源码?场景:Vue中设置一个data: count(初始0),页面中有一个{{ count }},还有一个按钮点一下就触发handler函数,页面上的count会怎么变化?为什么?

handler() {for (let i=0; i<100; i++) {this.data = i}}

什么是$nextTick,怎么判断什么时候我要进行$nextTick了什么是EventLoop?什么是宏任务,什么是微任务?怎么执行的?那么EventLoop的机制是什么?假如你开发Vue,我怎么知道有没有微任务?宏任务有哪些?let i = 1;是什么任务?JS有几个线程?既然JS只有一个线程,那么怎么实现EventLoop的?怎么异步化的?为什么能实现异步?EventLoop里面有哪些任务,含有let i = 1;这种任务吗?同步任务是EventLoop里面的吗?是超脱于EventLoop里的吗?进程是什么?线程是什么?进程和线程的关系?多核cpu多线程的情况下,线程用的是同一个CPU吗?线程之间怎么通信?进程之间怎么通信?场景:有线程A中一个地址指向数据,线程B可以直接拿这个数据吗?什么是信号量?干嘛的?什么是锁?有哪些锁?怎么保证线程安全?互斥锁实现机制?

算法题实现思路

我写的如下,时间复杂度O(nlogn),说了感觉可用期望算,最后不会算,只能大概讲一下

pivot = arr[Math.floor(arr.length / 2)]; // 以中点元素作为基数的话quicksort(arr, pivot)function quickSort(arr, pivot) {if (arr.length <= 1) {return arr;}const left = [];const right = [];for (const ele of arr) {if (ele < pivot) {left.push(element);} else if (ele > pivot) {right.push(ele);}}return [...quickSort(left), pivot, ...quickSort(right)];}

递归做的,时间复杂度O(2^n)

// nums的结构类似 [3, 2, 3, 3, 1]function rob(nums, start, end) {if (start > end) {return 0;}// 递归从最下面的叶子节点网上加const curHouse = nums[start] + rob(nums, start + 2, end);const nextHouse = rob(nums, start + 1, end);if(curHouse > nextHouse){return curHouse;}return nextHouse;}

递归做的,时间复杂度O(n),其他方法说了一下推栈做(弄成数组的结构),但没成功写出来

/**TreeNode {left: Noderight: Nodeval: Number}*/function compare1(tree1, tree2) {if(tree1 === null && tree2 === null) {return true;}if((tree1 === null && tree2 !== null) || (tree1 !== null && tree2 === null)) {return false;} return (tree1.value === tree2.value && compare1(tree1.left, tree2.left) && compare1(tree1.right, tree2.right));}

小结

答得稀烂,看似答上其实没答上,瞎掰都掰不出来,去世

如果觉得《2024秋招腾讯wxg前端一面面经(只招实习转正)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。