Skip to content

Latest commit

 

History

History
210 lines (122 loc) · 9.19 KB

Meituan.md

File metadata and controls

210 lines (122 loc) · 9.19 KB

美团

0318笔试

选择题

  1. MySQL 中 GROUP BY 子句应该出现在 WHERE 子句之后,ORDER BY 子句之前

    SELECT col, COUNT(*) AS num
    FROM mytable
    WHERE col > 2
    GROUP BY col # WHRER 之后,ORDER BY 之前
    HAVING num >= 2;
    ORDER BY num 
  2. 连接:内连接(细分有自连接和自然连接)和外连接

    • 自连接可以看成内连接的一种,只是连接的表是自身而已。【需要提供连接的列】
    • 自然连接是把同名列通过等值测试连接起来的,同名列可以有多个。【自动连接所有同名的列】
  3. 清空表的内容可以使用truncate TABLE mytable

  4. KMP 算法中 next 数组

  5. Peterson 算法主要用于多进程或多线程间同步互斥,被用于解决临界区问题。缺点是:① 基于硬件的原子性;② 存在忙等待:需要在临界区的进程间轮流竞争,如果一个进程正在临界区内,那么另一个进程必须忙等待

算法T1—击败最多的敌人数

来源:https://leetcode.cn/circle/discuss/wSvfXt/

【题目内容】小美在玩一项游戏。该游戏的目标是尽可能抓获敌人。敌人的位置将被一个二维坐标 (x,y)所描述。小美有一个全屏技能,该技能能一次性将若干敌人一次性捕获。捕获的敌人之间的横坐标的最大差值不能大于 A,纵坐标的最大差值不能大于 B 现在给出所有敌人的坐标,你的任务是计算小美一次性最多能使用技能捕获多少敌人

【输入描述】第一行三个整数 N,A,B,表示共有 N个敌人,小美的全屏技能的参数 A 和参数 B。 接下来 N 行,每行两个数字 x,y,描述一个敌人所在的坐标(1 <= N <= 500, 1 <= A, B <= 1000, 1 <= x, y <= 1000)

【输出描述】一行,一个整数表示小美使用技能单次所可以捕获的最多数量

# 输入:
5 1 2
1 1
2 2
3 3
1 3
1 4
# 输出:
3

思路: 考虑到数据量比较小,可以直接暴力枚举,枚举的过程中维护当前区域的 minX, maxX, minY, maxY

具体代码参考:meituan_0318_1.cpp [AK 91%]

到店事业群

2023.03.27—19:00—1h,主要是负责 C 端广告业务

一面

1、[项目] RTMP、RTSP、HLS、DASH 这些协议有什么区别,时延比较呢?

HLS 和 DASH 是基于切片的,相比于基于流式的 RTMP 和 RTSP 时延要大

2、[项目] 单组播中组播优点是啥
3、[项目] 缓存 RTP 的内容队列有长度限制吗,会有阻塞吗
4、常见的 linux 命令有哪些
5、设计模式了解吗
6、unordered_map 和 map 区别是
7、解决哈希冲突的方法有哪些
  • 「线性探测」 使用hash函数计算出的位置如果已经有元素占用了,则向后依次寻找,找到表尾则回到表头,直到找到一个空位
  • 「开链」 每个表格维护一个list,如果hash函数计算出的格子相同,则按顺序存在这个list中
  • 「再散列」 发生冲突时使用另一种hash函数再计算一个地址,直到不冲突
8、智能指针了解多少
9、数据的索引有哪些 小林coding
10、常见的 HTTP 状态码有哪些
状态码 类别 含义
1XX Informational(信息性状态码) 接收的请求正在处理
2XX Success(成功状态码) 请求正常处理完毕
3XX Redirection(重定向状态码) 需要进行附加操作以完成请求
4XX Client Error(客户端错误状态码) 服务器无法处理请求
5XX Server Error(服务器错误状态码) 服务器处理请求出错

二面

1、[项目] 为什么要用 QUIC ,如何做到 0-RTT 握手

TCP 三次握手需要 1.5 RTT,TLS 握手需要 1.5 RTT,一般 HTTPS 就需要 3个 RTT 完成握手,QUIC 基于 UDP 首先通过 Inchoate Client HeLlO 以及 REJ 报文建立连接,这需要 1个 RTT,此时客户端会缓存服务端的一些信息(REJ 报文),然后客户端能够在不增加额外RTT的情况下建立一个加密的连接,要发送的数据可以在握手的包中捎带着发送过去,而不用等待服务器的回复,从而实现0RTT

所谓QUIC的0RTT是指在建立连接之后,后续发送数据都不需要增加额外的RTT时间,最开始的握手还是需要1RTT的时间消耗的

参考:https://blog.csdn.net/qq_35448165/article/details/106840038

2、std::move 底层原理,转换成右值引用之后会发生什么 🔥 move
3、A 和 B 之间的 TCP 连接,如果 A 请求断开,发送 FIN 报文,但是丢失了,之后的发包也丢失了,A B 之间会发生什么
4、页表了解多少,脏数据(脏位)
5、MySQL InnoDB 引擎一个事务修改某个表中的数据,另一个事务请求读这条数据会发生什么

数据开发岗

2023.09.14—17:00-18:00 数据开发岗

  • python 中 pass 关键字、查看变量类型、string 和 unicode 区别
  • 重载和重写的区别,多态如何实现
  • 线程和进程区别
  • 实习项目按照 STAR 法则叙述一下,难点是啥
  • 第一范式、第二范式、第三范式,范式越高越好吗
  • 两道 sql 题目:city 表选 id 重复出现的数据项,student 表总分按逆序排列
  • 反问:数据开发具体做啥,使用啥语言(pyhton, sql,难怪一开始问我 python)

首先美团的志愿安排有点迷,第二志愿没走直接到第三志愿,而且软件开发岗中还有数据开发,岗位不太匹配直接拒了

软件开发岗

2023.09.15—19:00-20:00 信息安全部门

  • DASH 协议介绍一下,和 HLS 的区别?

    • DASH 基于 mpd 文件索引 m4s 文件,HLS 基于 m3u8 文件索引 TS 文件
    • DASH 的码率是分片级别的,HLS 的码率是索引文件级别的
    • DASH 使用带宽估计算法确定可用的宽带,HLS 基于时间的算法检测网络带宽
    • DASH 根据网络状况和设备性能不断切换码率,HLS 每隔几秒选择一个新码率版本播放
  • muduo 库使用 Reactor 模型是什么,和 Proactor 区别是啥

    Reactor 模型主要组件:Event 时间、Reactor 反应堆、Demultiplex 时间分发器、EventHandler 时间处理器

    ReactorProactor模式的主要区别就是 真正的读取和写入操作是由谁来完成的

    • Reactor来了事件操作系统通知应用进程,让应用进程来处理。主线程(I/O 处理单元)之复杂监听 fd 是否有事件发生,有就通知工作线程(逻辑单元),除此之外主线程不做其他工作
    • Proactor来了事件操作系统来处理,处理完再通知应用进程。将所有 I/O 操作都交给主线程和内核来处理(读写),工作线程仅仅负责业务逻辑(解析 HTTP 请求,在封装成响应数据发回去)
  • 为何要基于红黑树实现定时器

  • CS144 项目中为何要使用指数退避,存在粘包问题吗(在开发过程应该不存在

    退避方法很多,比如有每次等待 100ms 重传一次、等待指数退避时间

    主要的一个原因就是不要给对端造成过多的压力

  • TCP 三次握手和四次挥手过程

  • 进程调度策略

    准确来说分为批处理系统和交互式系统

    • 批处理系统:FCFS、SJF、最短剩余时间优先
    • 交互式系统:时间片轮转、优先级调度、多级反馈队列
  • 给定 4G 内存,40亿个不重复的 unsigned int 中如何查找指定整数

    直接枚举、bitmap 位图统计

  • 了解或者使用过消息队列吗

  • 算法:简单的层序遍历

软件开发—后端

2024.03.23 19:00-20:00 到店民宿业务

  • C++和Java有过加强学习吗,聊研究生经历

  • Java 注解

  • 终端和异常区别

  • SQL 分页查询如何实现,offset 很大时如何优化

    1. 使用基于主键的分页:基于主键的分页是一种更有效的分页策略。在查询条件中使用主键范围限制,而不是使用 OFFSET。例如,使用 WHERE id > last_id LIMIT 10 来获取下一页的数据。这种方式避免了跳过大量记录,提高了查询性能。
    2. 使用游标:一些数据库引擎支持游标(如MySQL的游标),可以通过游标来实现分页查询。游标可以在数据库服务器端处理分页逻辑,减少了客户端和服务器之间的通信开销,提高了查询性能。
  • 场景题:美团用户点外卖场景 ,如何快速筛选距离比较近的商家,不要求很精确(ES,倒排索引

  • 算法题:反转链表II