- 1
- 0
- 约2.13万字
- 约 23页
- 2026-06-02 发布于河北
- 举报
算法与数据结构面试题及详细答案
一、基础概念题(必问,考察基础功底)
1.说说数组和链表的区别,各自的适用场景是什么?
答案:核心区别在于存储结构和访问方式,没有绝对优劣,看场景选择。
数组:连续内存存储,支持随机访问(通过下标O(1)获取元素),但插入、删除操作效率低(插入中间位置需移动后续所有元素,时间复杂度O(n));内存利用率高(连续存储,无额外开销),但初始化时需指定大小,扩容麻烦(通常是翻倍扩容,浪费部分内存)。
链表:非连续内存存储,通过指针/引用连接节点,不支持随机访问(访问第k个元素需从头遍历,O(n)),但插入、删除操作效率高(只需修改指针指向,O(1),前提是找到目标节点);内存利用率低(每个节点需额外存储指针),无需初始化大小,可动态扩容。
适用场景:
数组:适合频繁查询、数据量固定、无需频繁插入删除的场景(如:存储用户ID列表、成绩排名)。
链表:适合频繁插入、删除、数据量动态变化的场景(如:链表版队列/栈、LRU缓存的底层实现、操作系统的进程调度链表)。
补充:实际开发中,ArrayList(数组实现)和LinkedList(双向链表实现)的选择,本质就是上述区别的落地——频繁查用ArrayList,频繁增删用LinkedList。
2.什么是时间复杂度和空间复杂度?如何分析一段代码的时间复杂度?
答案:两者都是衡量算法效率的指标,核心是“牺牲空间
您可能关注的文档
最近下载
- (正式版)DB34∕T 5285-2025 《水库安全生产风险管控六项机制规范》.pdf VIP
- CECS19-1990 混凝土排水管道工程闭气检验标准.docx VIP
- DB34T 5346-2025水利工程建设安全生产风险管控六项机制规范.pdf VIP
- 前传MOD新金庸立志传图文攻略.docx VIP
- 2025年江苏省南通市中考道德与法治试卷.docx VIP
- 2025年河南省中考数学试卷真题及答案详解(精校打印版).pdf VIP
- 大平底计算法在现场超声波检测中的应用.pdf VIP
- 进城务工交通安全课件.ppt VIP
- 2025年辽宁大连市中考物理试卷及答案.docx VIP
- 沃柑直播话术脚本.docx VIP
原创力文档

文档评论(0)