微派_服务端开发_凉经

早上面的,算法题蛮难的,然后我给个非正解,时间复杂度也过得去,但晚上就挂,面试官想让我给出最优解,有点……逆天。

面了70分钟。

  1. 个人经历与算法基础

    问了好几个的算法知识。因为我是打ACM的,没什么参考价值就不贴了。

  2. 代码实现与内存管理

    • 问题(算法):实现判断整数回文的函数。
    • 追问:能仅用栈内存实现吗,Java中堆与栈内存的对象的区别?
    • 问题(算法,题目在最后):如何判断多个基因序列的血缘关系?
  3. JIT与计算机网络

    • 问题:Java的JIT编译器原理是什么?
    • 追问:JIT编译的机器码与JVM解释执行有何本质区别?
    • 追问:Java与Python的解释过程差异?
  4. 计算机网络

    • 问题:简述OSI七层模型。
    • 追问:RPC协议属于哪一层?
    • 追问:为何需要注册中心?
  5. 反问

基因序列同源分组问题

问题描述

用不含重复字母的字符串表示一段基因序列。如果一段基因序列可以通过以下任一操作得到另一个基因序列,则认为这两段基因是同源的(或者说有血缘关系):

  1. 增加一个字母
  2. 删除一个字母
  3. 改变一个字母

给定若干个基因序列,求一共有多少种不同的血缘关系(即连通分量的数量)。

输入规范

  • 输入仅包含小写字母
  • 基因序列的总数量不超过 10,000

示例

示例 1

输入: ["a", "b", "ab", "cde"] 输出: 2

解释:

  • "a"、"b" 和 "ab" 互为同源(可通过增加或删除一个字母相互转换)
  • "cde" 与其他序列不同源
  • 因此共有 2 个血缘组

示例 2

输入: ["a", "ab", "abc", "ba"] 输出: 1

解释:

  • 所有序列都在同一个连通分量中(可以通过一系列操作相互转换)
  • 因此共有 1 个血缘组
#软件开发笔面经##微派##春招##面经#
全部评论
佬可以分享个tl嘛
点赞 回复 分享
发布于 03-31 16:16 四川
刚收到笔试邀请就来找面经了,请问会问项目吗,我简历上是网上开源的项目
点赞 回复 分享
发布于 03-27 20:42 福建
佬,这是第几面
点赞 回复 分享
发布于 03-25 14:46 河北
好难的样子
点赞 回复 分享
发布于 03-25 04:40 江苏

相关推荐

点赞 评论 收藏
分享
03-28 18:58
已编辑
华中师范大学 golang
#一面凉经#3.21微派贪吃蛇大作战go后端实习生面了大概一个小时计网被狠狠拷打了,怎么这么难1. 自我介绍2. OSI七层模型是什么?3. 每层是干什么的?解决了什么问题?(开始答得每层有什么协议,他说不对,问我每层解决了什么问题,比如网络层,物理层。答得不好)4. 为什么要分七层?(解耦合,专注自己每一层的职责)5. OSI分层的思路对开发有什么帮助?(举例MVC中各层的处理逻辑独立)6. 应用层协议有什么?(http,https,ws,grpc,我为什么要说ws啊,我艹了)7. ws,grpc是基于什么的?(答得http2,但是ws是http1.1握手+tcp通信)8. TCP三次握手流程?具体报文变化?(报文真不会啊)每一步的意义?9. TCP怎么实现的面相连接与可靠?(讲了ACK应答,拥塞控制,滑动窗口啥的,拥塞控制忘了好几个名词)10. TCP和UDP哪个传输字节流,那个传输报文(搞反了...很好,被看出来计网学的一坨了)11. ws的底层实现(只知道是http1.1做的连接,之后的传输是ws自己处理的)12. 基于udp做一个可靠的传输协议(直接抄TCP的,应用层手动拆分)13. http1->http1.1->http2->http3的变化14. 讲一下GMP模型15. 为什么要提出协程(用户态,轻量无感实现线程同样的效果)16. 讲一下channel的实现17. 为什么go语言鼓励通过通信实现共享内存,而不是通过共享内存实现通信?(答得各个协程之间互相隔离)18. 项目里面redis用了什么?什么数据结构?(做单聊,用的List)19. 还用过什么数据结构?(String做缓存)20. 为什么不考虑使用hash?(直接操作redis更新需求小,大多是直接覆盖)21. redis是单线程还是多线程的?(IO多线程,事件处理单线程)22. redis多路复用怎么实现的?(各个操作系统不同,linux上用的epoll)23. 为什么redis使用单线程而其他的数据库使用锁?(基于内存,性能主要瓶颈不同)24. redis怎么实现一个排行榜?如果分数一样按照时间排序怎么处理?(用Zset,Val直接存一个json字符串,时间字段在前,比较完时间字段就得到比较结果了)25. 为什么项目用微服务重构?(机器带宽问题,多人协作问题)26. 你觉得什么时候才需要用到微服务?(没想明白,只说没钱,服务器资源不够)27. 微服务的优劣势(部分更新而不是导致所有服务挂掉,运维成本比较高)28. 拆分微服务的关键,是如何做拆分的?(水平拆分和垂直拆分)29. leetcode最长公共前缀反问:1. 游戏后端和一般的业务有什么区别?(看业务,做活动的和一般的后端没差,其他的不太一样,但是我没记住)2. ZSet的那题的优雅解决方案?(float类型,小数点前用分数,后面用时间戳)3. 什么时候要拆微服务?(不同服务之间的流量大小不同,需要消耗的资源不同,所以当业务体量很大,出现严重的流量不等的时候适合拆分)
查看29道真题和解析
点赞 评论 收藏
分享
评论
3
1
分享

创作者周榜

更多
牛客网
牛客企业服务