第一次笔试有十道左右选择题(大多是多选题),五六道简答题,三道编程题。由于简答题写的太久了后面编程题就没来得及写完,后来一面的时候面试官说可以再做一次笔试,于是有了第二次笔试。
第二次笔试有十几道选择题,大部分都比较常规,然后是五道编程题。由简单到难的,接下来记录一下~
# 第一题
给定一个字符串数组 返回另一个包含所有最长字符串的数组
let inputArray = ["aba", "aa", "ad", "vcd", "aba"]
function solution(inputArray) {
let maxNum = 0// 记录最长长度
let map = new Map
for(let str of inputArray) {
let len = str.length
let temp
maxNum = Math.max(maxNum, len) // 比较字符串长度和记录最长长度
if (map.get(len) === undefined) {
temp = [str]
} else {
temp = map.get(len)
temp.push(str)
}
map.set(len, temp)
}
console.log(map.get(maxNum))
}
solution(inputArray)
# 第二题
层序遍历二叉树
[从上到下遍历二叉树] ** https://leetcode.cn/problems/cong-shang-dao-xia-da-yin-er-cha-shu-lcof/ **
var levelOrder = function(root) {
const ret = [];
if (!root) {
return ret;
}
const q = [];
q.push(root);
while (q.length !== 0) {
const currentLevelSize = q.length;
ret.push([]);
for (let i = 1; i <= currentLevelSize; ++i) {
const node = q.shift();
ret[ret.length - 1].push(node.val);
if (node.left) q.push(node.left);
if (node.right) q.push(node.right);
}
}
return ret;
};
# 第三题
css 水平垂直居中
display: flex/grid;
justify-content: center;
align-items: center;
# 第四题
递归 实现 反转链表
var reverseList = function(head) {
// 终止条件
if (head == null || head.next == null) {
return head;
}
const newHead = reverseList(head.next);
head.next.next = head;
head.next = null;
return newHead;
};