腾讯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);

追问:

这段代码的时间复杂度是多少

全部评论
csig是啥,第一次听说这个
点赞 回复 分享
发布于 09-24 11:42 陕西

相关推荐

不愿透露姓名的神秘牛友
10-04 05:12
kalistar:简历留六个字,北京大学(本科),黑体加粗,看看哪个hr不长眼敢碰瓷我们北大✌
点赞 评论 收藏
分享
10-15 10:23
门头沟学院 Java
牛可乐的头像真牛:赶紧举报,这公司绝对是诈骗的,等你签约后工作一两个月后根据合同漏洞把你开除,并且要求你赔偿3w培训费,996是为了提前筛选心甘情愿签下合同容易受骗的群体,纯粹面向校招生精心设计的骗局
你见过哪些工贼行为
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

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