首页 > 美团移动端一面面经
头像
DownUp子
编辑于 2021-08-21 09:30
+ 关注

美团移动端一面面经 内部员工回复

问答环节

实验室项目相关

final关键字
ArrayList 和 LinkedList 区别
如何使用java如何线程创建
数据库建立表需要注意? 说了说数据库三大范式
HTTP状态码
POST GET区别
说到了幂等,他问什么是幂等
ARP协议? 不知道
equal hashcode
UDP怎么保证可靠。提了一下QUIC,但是他继续问 如果让你自己设计如何让UDP可靠
什么是同步
什么情况下会死锁
死锁的四个必要条件

算法环节

写一个死锁。写完之后问是不是一定会出现死锁,并解释原因

// 参考代码 
import java.util.concurrent.TimeUnit;

public class DeadLock {
    public static void main(String[] args) {
        Object lock1 = new Object();
        Object lock2 = new Object();
        new Thread(() -> {
            synchronized (lock1) {
                System.out.println("我是线程1 我获取了 lock 1");
                try {
                    TimeUnit.SECONDS.sleep(1);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println("我是线程1 我开始尝试获取 lock 2 ");
                synchronized (lock2) {
                    System.out.println("我是线程1 我获取了 lock 2");
                }
            }
        }).start();

        new Thread(() -> {
            synchronized (lock2) {
                System.out.println("我是线程2 我获取了 lock 2");
                try {
                    TimeUnit.SECONDS.sleep(1);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println("我是线程2 我开始尝试获取 lock 1 ");
                synchronized (lock1) {
                    System.out.println("我是线程2 我获取了 lock 1");
                }
            }
        }).start();

    }
}

多叉树的深度 力扣559

# 参考代码
class TreeNode:
    def __init__(self, val=None, children=None):
        self.val = val
        self.children = children  # types List or None


class Solution:
    def __init__(self):
        self.res = 0

    def recur(self, node, depth):
        if not node: return
        if not node.children:
            self.res = max(self.res, depth)
        else:
            for chi in node.children:
                self.recur(chi, depth + 1)

    def solve(self, node):
        self.recur(node, 1)
        return self.res


if __name__ == '__main__':
    root = TreeNode(1, [
        TreeNode(2, [TreeNode(4)]),
        TreeNode(3),
        TreeNode(2, [TreeNode(4)])
    ]
                    )
    sol = Solution()
    print(sol.solve(root))

反问环节

业务是?
我的表现?更自信一点

更多模拟面试

全部评论

(7) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期热帖

近期精华帖

热门推荐