前言总用时:1h 55min注意事项:wxg只收实习转正,需要至少先实习60天,地点在广州部门,所以需要确定好时间事宜被拷打,被问一个问题想至少一分钟多,本来紧张组织语言就很灾难,又特别难特别煎熬,绞尽脑汁,完全没问html和css,时长很久所以有一些不记得了,但是因为完全顺着逻辑就问下去了,所以能想起来大部分。问了很多底层、操作系统等等的(真的快忘完了,复习也没复习到那些部分,也有可能一开始就没特别搞清楚),上来手撕三道算法题,感觉把毕生所学都用上了,虽然绩点较高但知识没有深入的后果be like流程面试官自我介绍,我自我介绍手撕算法:快速排序,实现 + 讲解思路,时间复杂度是多少,怎么计算的时间复杂度手撕算法:二叉树从上到下取和最多线路的和(且取的每个元素不能是相邻两个叶子节点),时间复杂度手撕算法:两个二叉树判断相同,数据结构如下,时间复杂度,还有其他方法吗?TreeNode { left: Node right: Node val: 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: Node  right: Node  val: 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));}小结答得稀烂,看似答上其实没答上,瞎掰都掰不出来,去世CSDN也发了这个:点击跳转CSDN - 2024秋招腾讯wxg前端一面面经(只招实习转正)
点赞 13
评论 3
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务