
今天参加CVTE笔试,真是失败啊!首先时间把握的很不好,由于它把算法题放在了前面,便以为后面还有算法题,加急做完,效果很不好,很多逻辑没理好,后面那些选择题也是匆忙做完结果交卷的时候还有45分钟,离大谱啊杨启香。。。。。。。。
说多了都是泪,通过这次笔试还是发现了自己还有很多不足,主要是计网和node以及一些event事件发现还是理解不够,吃一堑,长一智,现在就慢慢复盘一下考察的知识点吧
前程尚远,步步耕耘啊杨启香
获取元素的节点有哪些方式
Document.getElementsByName和document.querySelectorAll
- 返回一个NodeList类数组对象
算法1
题目描述:使用buildTree构建完全二叉树,使用levelPoint以层序遍历方式输出二叉树
实现
function node(val, left, right) {
this.val = val;
this.left = left;
this.right = right;
}
function buildTree(root, totalLevel) {
if (totalLevel <= 0) {
return;
}
root.left = buildTree(new node(root.val + 1, null, null), totalLevel - 1);
root.right = buildTree(new node(root.val + 1, null, null), totalLevel - 1);
return root;
}
function levelPrint(root) {
let queue = [root];
let levelArr = [];
let res = [];
let levelLength = 1;
while (queue.length > 0) {
let curNode = queue.shift();
levelArr.push(curNode.val);
if (levelArr.length === levelLength) {
res.push(levelArr);
levelArr = [];
levelLength *= 2;
}
if (curNode.left) {
queue.push(curNode.left);
}
if (curNode.right) {
queue.push(curNode.right);
}
}
console.log(res)
return res;
}
const root = new node(0, null, null);
let totalLevel = 4;
buildTree(root, totalLevel);
levelPrint(root);
console.log(root)
算法2
题目描述:实现洗牌算法函数shuffle,给定一个数组[0,1,2,3,4,5,6],每次随机抽选数组的n个值,连续抽选不重复已经抽选的值,知道数组抽完,再进入下一轮循环
示例1:
var random=shuffle([0,1,2,3,4,5,6])
random(1);//[1]
random(1);//[0]
random(1);//[2]
random(1);//[3]
random(1);//[5]
random(1);//[4]
random(1);//[6]
random(1);//[3]
random(1);//[1]
示例2:
var random=shuffle([0,1,2,3,4,5,6])
random(1);//[1]
random(1);//[0,6]
random(1);//[2]
random(1);//[3,4,5,2]
实现
function shuffle(arr) {
let temp = Array.from(arr);
return function (num) {
let res = [];
while (num) {
let index = Math.floor(Math.random() * temp.length);
res.push(temp[index]);
num--;
temp.splice(index, 1);
if (temp.length == 0) {
temp = Array.from(arr);
}
}
console.log(res);
console.log(temp)
return res;
};
}
var random = shuffle([0, 1, 2, 3, 4, 5, 6]);
random(1);
random(1);
random(1);
random(1);
random(1);
random(1);
random(1);
console.log("一轮");
random(1);
random(1);
random(2)
random(2)
random(3)
令人惊喜的是,我过了,嘎嘎嘎嘎嘎!