美团前端二面面经

发面经,攒人品。。(二面面试官很有耐心,引导的很好。。点赞)

1. 二叉树的中序遍历实现

// Way1. 栈结构实现
function inOrder(root) {
    var res = [];
    var stack = [];
    var p = root;
    while (p || stack.length > 0) {
        while (p) {
            stack.push(p);
            p = p.left;
        }
        p = stack.pop();
        res.push(p.node);
        p = p.right
    }
    return res
}

// Way2. 递归实现
function inOrderCore(root, res) {
    if (!root) {
        return 
    }
    inOrderCore(root.left, res);
    res.push(root.node);
    inOrderCore(root.right, res);
}

function inOrder2(root) {
    var res = [];
    inOrderCore(root, res);
    return res;
}

2. 分析递归算法的时间复杂度

3. 二叉树的节点为N,那么二叉树的深度为多少,怎么推导的。。(logN)

4. 算法实现二叉树深度

function dfs(root) {
    if (!root) {
        return 0
    }else {
        var leftDepth = dfs(root.left);
        var rightDepth = dfs(root.right);
        var childDepth = leftDepth > rightDepth ? leftDepth : rightDepth;
        return childDepth + 1
    }
}

5. 闭包和JS垃圾回收机制

6. 利用闭包实现按列升降序排序函数(0表示升序,1表示降序)

function listSort(testArr, str) {
    return function (sortWay) {
        // 比较
        if (sortWay) {
            testArr.sort((a, b) => {return b[str] - a[str]})
        }else {
            testArr.sort((a, b) => {return a[str] - b[str]})
        }
        return testArr
    }
}

var testArray = [{name: 1,age: 18,mobile: 123},{name: 2,age: 19,mobile: 234},{name: 3,age: 20,mobile: 456}];

console.log(listSort(testArray, "name")(1));

7. ES6了解哪些

8. Generator的\*表示什么意思,如果在yield后加\*号表示什么

9. 介绍一下BFC

#美团##秋招##面经##前端工程师#
全部评论
收到三面通知了吗
点赞
送花
回复
分享
发布于 2019-08-29 12:32
一面面完什么时候会有下一面呀
点赞
送花
回复
分享
发布于 2019-08-29 12:41
滴滴
校招火热招聘中
官网直投
中序遍历不需要先封装一个树?会当场让你测试一下嘛?
点赞
送花
回复
分享
发布于 2019-08-29 12:43
是现场面还是视频啊?投的哪里?
点赞
送花
回复
分享
发布于 2019-09-01 22:25
请问楼主二面问项目吗
点赞
送花
回复
分享
发布于 2019-09-10 12:05
所以楼主那个时间复杂度是多少呢
点赞
送花
回复
分享
发布于 2019-09-10 16:24

相关推荐

投递阿里巴巴控股集团等公司10个岗位 >
点赞 评论 收藏
转发
3 56 评论
分享
牛客网
牛客企业服务