9.11 腾讯csig

1.图文上传流程
2.如何解决图片上传的负载
3.不同文件预览的挑战
4.讲一下自定义hook
5.讲一下Vue2 和vue3 的差异
6.vue3解决了vue2的什么问题
7.react对比vue的差异
8.了解性能优化,在网络层面讲一下优化
9.301 和 302区别
10.浏览器缓存的策略
11.具体是怎么触发缓存
12.css的动画中,给一个元素写一个动画,又给它绑定了js点击事件,会生效吗
13.反过来,js的代码会不会影响css
14.盒子模型,width:100 padding:100 宽度是多少

手撕:
对于一个数组(长度>=3)进行乱序排序,要求每个元素不会落到原来位置,且落到其他位置的概率相同:
function derangementShuffle(arr) {
  const n = arr.length;
  // 复制数组,防止修改原数组
  const shuffledArr = [...arr]; 
  
  // 1. 使用 Fisher-Yates 洗牌算法进行初步打乱
  for (let i = n - 1; i > 0; i--) {
    const j = Math.floor(Math.random() * (i + 1));
    [shuffledArr[i], shuffledArr[j]] = [shuffledArr[j], shuffledArr[i]];
  }

  // 2. 检查并纠正还在原位的元素
  for (let i = 0; i < n; i++) {
    // 如果当前元素还在原位,需要进行交换
    if (shuffledArr[i] === arr[i]) {
      let j = (i + 1) % n; // 从下一个位置开始找
      
      // 找到一个可以交换的元素
      while (shuffledArr[j] === arr[j] && j !== i) {
        j = (j + 1) % n;
      }
      
      // 进行交换
      [shuffledArr[i], shuffledArr[j]] = [shuffledArr[j], shuffledArr[i]];
    }
  }

  return shuffledArr;
}

// 示例
const originalArr = [1, 2, 3, 4, 5];
const derangedArr = derangementShuffle(originalArr);
追问:
这段代码的时间复杂度是多少

反问:
1.业务
2.几面
#腾讯##csig##前端##面试##凉经##大厂##秋招#
全部评论

相关推荐

09-23 21:27
已编辑
四平职业大学 机器学习
面试有史以来第一次是本校学长/学姐面,但是很可惜可能G了首先自我介绍,介绍两段实习+硕士课题,先简单介绍了一下,然后让我重点详细介绍一下在蚂蚁的实习工作,就按照timeline列举了一下做了哪些工作,中间穿插一些提问然后又让我重点介绍了自己的硕士课题,聊完课题之后提问:问:是否了解内存池,如果让你设计一个动态内存池,你会有哪些考量?答:先说明自己没有做过上层的内存管理,然后从底层的内存管理介绍了一下,对数据分块、淘汰策略、数据预取等方面的一些基础的策略,然后面试官也没有追问拷打(感谢心软学姐);问:对未来的职业方向有没有自己的想法?答:说了一下自己硕士的方向与现在大模型优化技术的结合,未来可能是一个潜在的优化点,举了一个详细的例子;手撕:实现一个包含环检测功能的链表反转的代码,如果有环,返回nullptr,如果无环返回反转后的head&nbsp;node,腾讯手撕依旧考察基础,让我写完整并且打印示例,一次通过了反问:了解一下业务?答:主要做大数据,介绍了一些业务场景,然后心凉半截,因为我说的未来规划和业务场景基本上毫无关系然后又提问是否了解Ray?我没有听过,我说不了解,然后又问了一句,对其他分布式工具是否有所了解,然后就说了Megtron了解一些后续下来问室友发现Ray就是vLLM官方实现分布式的一个工具,但是之前也没有了解过
发面经攒人品
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务