2022校招提前批-京东算法(算法工程)面经

一面(45min)

  1. 自我介绍
  2. 讲实习项目、技术挑战、收获
  3. 基础部分
    • C++:指针,内存管理,STL,balabala(STL问的比较多,问到底层实现的程度)
    • 设计模式:讲一讲知道的设计模式,以及具体内容(单例,工厂,观察者balabala)
    • 数据结构与算法: 讲一讲知道的排序算法,挑两个讲实现细节(冒泡,选择,插入,快排,归并,堆排,希尔,桶排,计数排序,基数排序)(挑了快排和堆排,快排讲了核心思想和分区点优化策略,堆排讲了堆结构特点,建堆,分自顶至下和自底至上堆化两种,分析复杂度)
  4. 反问环节(工作氛围,岗位负责的日常工作内容)
    总结:大部分时间都在怼C++和项目,因为鄙人擅长的不是C++导致答得很勉强,其他因为问的都不是很难(可能是看我太菜了)所以都尽力答得细了些

二面(40min)

  1. 自我介绍
  2. 讲实习项目、技术挑战、收获
  3. 场景题:设计一个文件系统,支持多线程读写(第一反应是并发控制类问题,需要保证并发性能与数据一致性之间的权衡,从乐观锁和悲观锁两种角度答了一下,思路仅供参考。。乐观锁:读操作多,容忍冲突,事后检测冲突并决定采取如何策略,例子:Git版本控制 实现策略:版本号或CAS原子操作 悲观锁:写操作多,强制加锁,操作前申请,操作完成释放,具体实现略)
  4. 场景题追问:如果读很多,写只有一个,如何保证读性能?(参考数据库多版本并发控制原理(MVCC)中的快照读策略,在实现版本号的基础上存一个旧版本的快照,当写操作进行时,读操作读一个快照即可)
  5. 场景题追问plus:读很多,写结束怎么通知大量读线程读取新数据?(这个我懵了,因为不敢一口咬定就尝试答了信号机制,IO多路复用实现原理balabala)
  6. 手撕算法:LeetCode 146. LRU缓存淘汰 / 页面淘汰策略
    具体实现略,方法很多,一般是双向链表+哈希,其他数据结构也行,按照LRU的思想一步步走就可
  7. 反问环节(同一面,问了点细节)
#京东2021秋招提前批##面经##校招##京东##算法工程师#
全部评论
老哥,不是算法吗?怎么问了这么多开发的问题?
2 回复
分享
发布于 2021-08-02 17:33
收到京东的offer了吗?
2 回复
分享
发布于 2021-08-03 20:09
乐元素
校招火热招聘中
官网直投
这确定不是开发岗?
1 回复
分享
发布于 2021-09-01 16:15
所以看起来这个岗位不问算法问题吗?我也打算投
点赞 回复
分享
发布于 2021-09-19 22:37
楼主,这个"岗位负责的日常工作内容"是啥?
点赞 回复
分享
发布于 2021-09-19 22:39

相关推荐

4 13 评论
分享
牛客网
牛客企业服务