微信图片_20211221231737.jpg
今天参加CVTE笔试,真是失败啊!首先时间把握的很不好,由于它把算法题放在了前面,便以为后面还有算法题,加急做完,效果很不好,很多逻辑没理好,后面那些选择题也是匆忙做完结果交卷的时候还有45分钟,离大谱啊杨启香。。。。。。。。

说多了都是泪,通过这次笔试还是发现了自己还有很多不足,主要是计网和node以及一些event事件发现还是理解不够,吃一堑,长一智,现在就慢慢复盘一下考察的知识点吧

前程尚远,步步耕耘啊杨启香

获取元素的节点有哪些方式

Document.getElementsByNamedocument.querySelectorAll

算法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)

令人惊喜的是,我过了,嘎嘎嘎嘎嘎!