美团面试题分享

简介: 利用队列做BFS,有关二叉树层次遍历的思路都可以套用。

以下两道题是本人几年前面试遇到过的真实面试题,由于当年刷题不够,思路也不到位,导致没有答好。今天正好刷LeetCode,看到原题了,勾起了我的回忆......


1  给定一棵二叉树,找到每一行中的最大值。


输入:


      1
         / \
        3   2
       / \   \  
      5   3   9


输出: [1, 3, 9]


LeetCode原题,题号是515。


先说答案:


/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public List<Integer> largestValues(TreeNode root) {
        List<Integer> res  =new ArrayList<>();
        Queue<TreeNode>  q = new LinkedList<>();
        if (root ==null ){
            return res;
        }
        q.add(root);
        while(!q.isEmpty()){
            int size = q.size();
            int max = Integer.MIN_VALUE;
            for(int i = 0; i<size; i++){
               TreeNode node = q.poll();
               max = Math.max(max,node.val);
               if (node.left !=null){
                   q.add(node.left);
               }
               if (node.right !=null){
                   q.add(node.right);
               }
            }
            res.add(max);
        }        
        return res;
    }
}


是的,就是利用队列做BFS,有关二叉树层次遍历的思路都可以套用。


2  手写 hashmap的put方法


我不知道多少人能写出来,说实话直到现在我也写不出来。但冷静下来细想,人家真的是考你能不能完全写出来吗?我想,可能还是考查你对于put的熟悉程序,对流程的把握,如果你把基本流程用伪代码讲清楚了,怎么也能答到及格吧。

相关文章
|
1月前
|
消息中间件 前端开发 Java
美团面试:如何实现线程任务编排?
线程任务编排指的是对多个线程任务按照一定的逻辑顺序或条件进行组织和安排,以实现协同工作、顺序执行或并行执行的一种机制。 ## 1.线程任务编排 VS 线程通讯 有同学可能会想:那线程的任务编排是不是问的就是线程间通讯啊? 线程间通讯我知道了,它的实现方式总共有以下几种方式: 1. Object 类下的 wait()、notify() 和 notifyAll() 方法; 2. Condition 类下的 await()、signal() 和 signalAll() 方法; 3. LockSupport 类下的 park() 和 unpark() 方法。 但是,**线程通讯和线程的任务编排是
32 1
|
1月前
|
存储 缓存 监控
美团面试:说说OOM三大场景和解决方案? (绝对史上最全)
小伙伴们,有没有遇到过程序突然崩溃,然后抛出一个OutOfMemoryError的异常?这就是我们俗称的OOM,也就是内存溢出 本文来带大家学习Java OOM的三大经典场景以及解决方案,保证让你有所收获!
441 0
美团面试:说说OOM三大场景和解决方案? (绝对史上最全)
|
23天前
|
消息中间件 存储 Java
美团面试:说说Netty的零拷贝技术?
零拷贝技术(Zero-Copy)是一个大家耳熟能详的技术名词了,它主要用于提升 IO(Input & Output)的传输性能。 那么问题来了,为什么零拷贝技术能提升 IO 性能? ## 1.零拷贝技术和性能 在传统的 IO 操作中,当我们需要读取并传输数据时,我们需要在用户态(用户空间)和内核态(内核空间)中进行数据拷贝,它的执行流程如下: ![](https://cdn.nlark.com/yuque/0/2024/png/92791/1706491312473-52f5904a-2742-4e99-9b78-995e9a8b9696.png?x-oss-process=image%2F
18 0
|
1月前
|
安全 Java
美团一面,面试官让介绍AQS原理并手写一个同步器,直接凉了
【5月更文挑战第2天】美团一面,面试官让介绍AQS原理并手写一个同步器,直接凉了
47 6
|
1月前
|
算法 Java C++
刷题两个月,从入门到字节跳动offer丨GitHub标星16k+,美团Java面试题
刷题两个月,从入门到字节跳动offer丨GitHub标星16k+,美团Java面试题
|
1月前
|
NoSQL 算法 Java
面试美团被问到了Redis,搞懂这几个问题,让你轻松吊打面试官
每一个程序员都拥有一座大厂梦,很多Java开发者面试之前,可能没有较长的工作时间或者较为丰富的工作经验,所以不知道互联网公司或者一线互联网公司技术面试都会问哪些问题? 再加上可能自己准备也不充分,去面试没几个回合就被面试官几个问题打蒙了,最后以惨败收场。
|
1月前
|
设计模式 网络协议 Java
美团面试,问的贼细~
美团校招面试涵盖网络(HTTP/TCP/UDP)、框架(Spring的IoC/AOP)、设计模式(静态代理)、编程(手写静态代理)、MySQL(事务隔离级别)、Java基础(数据类型/Integer与int的区别)、HashMap等知识点。面试从自我介绍开始,深入到技术细节,如TCP的三次握手和四次挥手,GET与POST请求的区别,以及MySQL的不可重复读示例。了解更多详情可访问[www.javacn.site](https//www.javacn.site)。
50 1
美团面试,问的贼细~
|
1月前
|
消息中间件 存储 监控
美团面试:Kafka如何处理百万级消息队列?
美团面试:Kafka如何处理百万级消息队列?
151 1
|
1月前
|
消息中间件 缓存 架构师
复习这份美团架构师的Java核心面试宝典,我四面阿里拿下offer
怎样才能拿到大厂的offer,没有掌握绝对的技术,那么就要不断的学习 他是如何拿下阿里等大厂的offer的呢,今天分享他的秘密武器,美团资深架构师整理的Java核心知识点,面试时面试官必问的知识点,篇章包括了很多知识点,其中包括了有基础知识、Java集合、JVM、多线程并发、spring原理、微服务、Netty 与RPC 、Kafka、日记、设计模式、Java算法、数据库、Zookeeper、分布式缓存、数据结构等等。
|
1月前
|
SQL 算法 安全
面试美团、头条、百度、京东,一名3年Java开发经验的面试总结
毕业转行做开发3年以来, 学到了很多, 加上自己的兴趣爱好, 个人认为已经成为了一个合格的程序员. 与刚开始找工作面试相同的是都会问一些相同的问题, 不同的是现在面试官会更注重为什么, 也就是说注重深度而非广度. 3年, 5年, 10年分别是个人从事技术方面职业规划中的一个坎, 3年大部分时间应对了业务逻辑, 培养良好的规范和思想, 基础知识还是欠缺.