#一人分享一道面试手撕题#一次技术面让我印象特别深刻。面试官没有让写常规算法题,而是手撕“LRU 缓存”设计与实现,要求支持 get/put 操作,并且 O(1) 时间复杂度。当时我有思路,但一上来还是有些紧张。我先把需求、边界条件确认清楚,然后提出用「哈希表 + 双向链表」的经典组合:哈希表负责 O(1) 定位节点,双向链表维护最近使用顺序;每次访问移动到表头,淘汰从尾部删除。之后我一边写一边用简单示例跑流程,解释为什么时间复杂度能保证在 O(1),还补充了线程安全与扩展方向。虽然代码不是最完美,但面试官更看重我的沟通与问题拆解能力。那次经历让我明白:手撕题不仅考代码,更考“思路是否清晰、能否把复杂问题讲明白”。
全部评论

相关推荐

2025-12-20 11:26
复旦大学 Java
点赞 评论 收藏
分享
1.针对项目一缓存处理设计。2.对比 LocalStorage 和 IndexedDB 的差异。3.项目二的客户端/web端区分,主要是web开发?4.该项目 React 使用的版本是多少?日常开发是否以 Hook 为主?5.对比原生 JS 开发,React 提供了哪些便利与优势?为什么现在前端开发基本使用固定的几个框架?6.React 绑定的事件和原生 JS 绑定事件的差异,React 将事霽目过绑定到根节点的目的与好处。7.浏览器本身是如何管理各类事件的?8.结合包含3个setTimeout 红任务的例子,说明 DOM 操作引发的回流、重绘与宏任务、微任务的关系;刷新页面执行获取为主 body 高度并修改的代码后,渲染触发的环节。9.是否使用过 requestAnimationFrame AP!? 在工作中有哪些应用?10.能否通过 requestAnimationFrame 实现 React Fiber 技术的核心逻辑(批量任务中断与优先级执行)?该API的好处体现枇盘出哪里?11.前端与后端联调时的合作方式,是否使用 Mock 数据?是鹣盘着车了解本地、测试、线上环境的区别?12.Vite 本地开发速度快的原因,本地开发产物与上线打包产物的区别。13.Vite 打包时将 ES6 转 ES5 等兼容处理的触发工具是什么?Babel转换代码的过程(AST 相关)。14.AST 抽象语法树的每个节点上储存哪些信息?賈像们一5.除浏览器环境外,Node 环境解析 JS 的差异(事件循环揖上局对象、DOM 操作等)。16.除 Chrome Network 面板外,开发调试时还使用过哪些好用的工具(浏览器或 VS Code 插件等)?
查看17道真题和解析
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务