首页 > 2022校招提前批-京东算法(算法工程)面经
头像
zhanlong011
编辑于 2021-08-02 17:49
+ 关注

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. 反问环节(同一面,问了点细节)

更多模拟面试

全部评论

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

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

热门推荐