Logo
☆☆☆☆☆
0.0
Beginner
30h

Python 编程面试中的数据结构

本课程系统回顾面试中常见的数据结构,涵盖复杂度度量、列表、链表、栈与队列、图、树、Trie、堆和哈希表。课程结合 Python 实现与面试题讲解,帮助学习者理解数据结构原理、常见操作和复杂度权衡。

10 Lessons
Included in Subscription Plan
Personalized Learning
Powered by AI
Python 编程面试中的数据结构
本课程系统回顾面试中常见的数据结构,涵盖复杂度度量、列表、链表、栈与队列、图、树、Trie、堆和哈希表。课程结合 Python 实现与面试题讲解,帮助学习者理解数据结构原理、常见操作和复杂度权衡。

WHAT YOU'LL LEARN

理解复杂度度量及其在数据结构选择中的作用

Content

10 Lessons • 0 Quizzes • 0 Challenges

复杂度度量简介
  1. 1

    比较算法

  2. 2

    示例:测量for循环的时间复杂度

  3. 3

    示例:测量嵌套 for 循环的时间复杂度

  4. 4

    渐近分析与大O表示法简介

  5. 5

    其他常见的渐近符号及大O符号为何更常用

  6. 6

    实用公式

  7. 7

    常见复杂度场景

  8. 8

    挑战:带加法的嵌套循环的时间复杂度 O(n²)(checkpoint)

  9. 9

    解法:带加法的嵌套循环的时间复杂度 O(n²)

  10. 10

    挑战:带减法的嵌套循环的时间复杂度 O(n²)(checkpoint)

  11. 11

    解法:带减法的嵌套循环的时间复杂度 O(n²)(concept)

  12. 12

    挑战:带乘法的嵌套循环的时间复杂度 O

  13. 13

    解法:具有乘法操作的嵌套循环的时间复杂度 O(n)

  14. 14

    挑战:嵌套循环与乘法(基础)

  15. 15

    解法:嵌套循环与乘法(基础)

  16. 16

    挑战:带乘法的嵌套循环(中级)

  17. 17

    解决方案:带乘法的嵌套循环(中级)

  18. 18

    挑战:嵌套循环与乘法(高级)

  19. 19

    解决方案:带乘法的嵌套循环(高级)

  20. 20

    挑战:嵌套循环与乘法(进阶)

  21. 21

    解决方案:带乘法的嵌套循环(进阶版)

  22. 22

    复杂度测验:检验你对复杂度的理解

列表简介
  1. 1

    列表

  2. 2

    数组

  3. 3

    Python 中的列表与数组

  4. 4

    挑战:从列表中移除偶数整数

  5. 5

    解决方案:从列表中移除偶数整数

  6. 6

    挑战:合并两个有序列表

  7. 7

    解决方案:合并两个有序列表

  8. 8

    挑战:找出和为 K 的两个数

  9. 9

    解法:找出和为 K 的两个数

  10. 10

    挑战:除自身以外数组的乘积

  11. 11

    解决方案:除自身以外数组的乘积

  12. 12

    挑战:在列表中查找最小值

  13. 13

    解决方案:在列表中查找最小值

  14. 14

    挑战:找出列表中第一个不重复的整数

  15. 15

    解法:列表中第一个不重复的整数

  16. 16

    挑战:在列表中找到第二大的值

  17. 17

    解决方案:在列表中查找第二大的值

  18. 18

    挑战:旋转列表

  19. 19

    解决方案:旋转列表

  20. 20

    挑战:重新排列正负数值

  21. 21

    解决方案:重排正负数值

  22. 22

    挑战:将有序列表按最大/最小值形式重新排列

  23. 23

    解决方案:将有序列表按最大/最小形式重新排列

  24. 24

    挑战:最大子列表

  25. 25

    解决方案:最大子列表

  26. 26

    列表测验:检验你对列表的理解程度

链表简介
  1. 1

    单向链表(SLL)

  2. 2

    链表与列表的对比

  3. 3

    基本链表操作

  4. 4

    单链表插入

  5. 5

    单链表删除

  6. 6

    双向链表(DLL)

  7. 7

    单向链表与双向链表

  8. 8

    挑战:在尾部插入元素

  9. 9

    解决方案:尾部插入

  10. 10

    挑战:在单向链表中搜索

  11. 11

    解决方案:在单向链表中搜索

  12. 12

    挑战:按值删除

  13. 13

    解决方案:按值删除

  14. 14

    挑战:求链表的长度

  15. 15

    解决方案:查找链表的长度

  16. 16

    挑战:反转链表

  17. 17

    解决方案:反转链表

  18. 18

    挑战:链表环

  19. 19

    解决方案:链表环

  20. 20

    挑战:链表的中间节点

  21. 21

    解决方案:链表的中间节点

  22. 22

    挑战:从链表中移除重复元素

  23. 23

    解决方案:从链表中移除重复元素

  24. 24

    挑战:链表的并集与交集

  25. 25

    解决方案:链表的并集与交集

  26. 26

    挑战:从末尾返回第 N 个节点

  27. 27

    解决方案:返回倒数第 N 个节点

  28. 28

    挑战:判断一个双向链表是否为回文

  29. 29

    解决方案:判断双向链表是否为回文

  30. 30

    链表测验:检验你对链表的理解程度

栈和队列简介
  1. 1

    什么是栈?

  2. 2

    栈(实现)

  3. 3

    什么是队列?

  4. 4

    队列(实现)

  5. 5

    挑战:使用队列生成从 1 到 n 的二进制数

  6. 6

    解决方案:使用队列生成从 1 到 n 的二进制数

  7. 7

    挑战:使用一个列表实现两个栈

  8. 8

    解决方案:使用一个列表实现两个栈

  9. 9

    挑战:反转队列的前 k 个元素

  10. 10

    解决方案:反转队列的前 k 个元素

  11. 11

    挑战:使用栈实现队列

  12. 12

    解决方案:使用栈实现队列

  13. 13

    挑战:对栈中的元素进行排序

  14. 14

    解决方案:对栈中的元素进行排序

  15. 15

    挑战:使用栈求解后缀表达式

  16. 16

    解决方案:使用栈求解后缀表达式

  17. 17

    挑战:使用栈求下一个更大元素

  18. 18

    解决方案:使用栈实现下一个更大元素

  19. 19

    挑战:找出名人

  20. 20

    解决方案:找出名人

  21. 21

    挑战:有效的括号

  22. 22

    解决方案:有效的括号

  23. 23

    挑战:最小栈

  24. 24

    解决方案:最小栈

  25. 25

    栈/队列测验:测试你对栈/队列的理解

图论简介
  1. 1

    什么是图?

  2. 2

    图的类型

  3. 3

    图的表示方法

  4. 4

    图的实现

  5. 5

    图操作的复杂度

  6. 6

    什么是二分图?

  7. 7

    图遍历算法

  8. 8

    挑战:实现广度优先搜索

  9. 9

    解决方案:实现广度优先搜索

  10. 10

    挑战:实现深度优先搜索

  11. 11

    解决方案:实现深度优先搜索

  12. 12

    挑战:检测有向图中的环

  13. 13

    解决方案:检测有向图中的环

  14. 14

    挑战:在有向图中找到一个母顶点

  15. 15

    解决方案:在有向图中找到一个母顶点

  16. 16

    挑战:计算无向图中的边数

  17. 17

    解法:统计无向图中的边数

  18. 18

    挑战:检查两个顶点之间是否存在路径

  19. 19

    解决方案:检查两个顶点之间是否存在路径

  20. 20

    挑战:图是否为有效树

  21. 21

    解决方案:图是否为有效树

  22. 22

    挑战:找到两个顶点之间的最短路径

  23. 23

    解决方案:查找两个顶点之间的最短路径

  24. 24

    挑战:从有向图中移除一条边

  25. 25

    解决方案:从有向图中移除边

  26. 26

    图论测验:检验你对图的理解

树简介
  1. 1

    树及其基本性质

  2. 2

    是什么让一棵树被称为“平衡”的?

  3. 3

    什么是二叉树?

  4. 4

    关于完全二叉树的更多内容

  5. 5

    偏斜二叉树

  6. 6

    什么是二叉搜索树(BST)?

  7. 7

    在 Python 中实现二叉搜索树

  8. 8

    二叉搜索树插入

  9. 9

    二叉搜索树插入(实现)

  10. 10

    二叉搜索树中的查找(实现)

  11. 11

    二叉搜索树中的删除操作

  12. 12

    二叉搜索树中的删除操作(实现)

  13. 13

    前序遍历

  14. 14

    后序遍历

  15. 15

    中序遍历

  16. 16

    什么是AVL树?

  17. 17

    AVL 插入

  18. 18

    AVL 删除

  19. 19

    什么是红黑树?

  20. 20

    红黑树插入

  21. 21

    红黑树删除

  22. 22

    什么是2-3树?

  23. 23

    2-3 插入

  24. 24

    2-3 删除(情况一)

  25. 25

    2-3 删除操作(情况二)

  26. 26

    2-3-4 树

  27. 27

    树的概述

  28. 28

    挑战:在二叉搜索树中找到最小值

  29. 29

    解法:在二叉搜索树中查找最小值

  30. 30

    挑战:在二叉搜索树中找到第 k 个最大值

  31. 31

    解决方案:在二叉搜索树中找到第 k 个最大值

  32. 32

    挑战:在二叉搜索树中查找给定节点的祖先

  33. 33

    解决方案:在二叉搜索树中查找给定节点的祖先

  34. 34

    挑战:求二叉搜索树的高度

  35. 35

    解决方案:求二叉搜索树的高度

  36. 36

    挑战:找出距离根节点为 k 的所有节点

  37. 37

    解法:找出距离根节点为 k 的节点

  38. 38

    树结构测验:检验你对树的理解

Trie
  1. 1

    什么是Trie?

  2. 2

    Trie 的结构

  3. 3

    Trie中的插入操作

  4. 4

    在Trie中搜索

  5. 5

    Trie 中的删除操作

  6. 6

    挑战:Trie 树中单词的总数

  7. 7

    解法:Trie 树中的单词总数

  8. 8

    挑战:找出存储在 Trie 中的所有单词

  9. 9

    解决方案:查找存储在 Trie 中的所有单词

  10. 10

    挑战:使用 Trie 对列表进行排序

  11. 11

    解决方案:使用字典树进行列表排序

  12. 12

    挑战:使用 Trie 从字典中构造单词

  13. 13

    解决方案:使用 Trie 从字典中构建单词

  14. 14

    Trie 测验:检验你对 Trie 的理解

堆简介
  1. 1

    什么是堆?

  2. 2

    最大堆:简介

  3. 3

    最大堆(实现)

  4. 4

    最小堆:简介

  5. 5

    最小堆(实现)

  6. 6

    挑战:将最大堆转换为最小堆

  7. 7

    解决方案:将最大堆转换为最小堆

  8. 8

    挑战:在列表中找到最小的 k 个元素

  9. 9

    解法:在列表中找到最小的 k 个元素

  10. 10

    挑战:在列表中找到最大的 K 个元素

  11. 11

    解决方案:在列表中查找 K 个最大的元素

  12. 12

    堆 Quiz:测试你对堆的理解

哈希简介
  1. 1

    什么是哈希表?

  2. 2

    哈希函数

  3. 3

    哈希表中的冲突

  4. 4

    从零构建一个哈希表

  5. 5

    哈希表中的添加/删除与查找(实现)

  6. 6

    哈希表快速概览

  7. 7

    树与哈希表

  8. 8

    字典与集合

  9. 9

    挑战:一个列表是另一个列表的子集

  10. 10

    解决方案:一个列表作为另一个列表的子集

  11. 11

    挑战:检查列表是否互不相交

  12. 12

    解决方案:检查列表是否不相交

  13. 13

    挑战:在列表中找出对称对

  14. 14

    解决方案:在列表中查找对称数对

  15. 15

    挑战:追踪旅程的完整路径

  16. 16

    解决方案:追踪旅程的完整路径

  17. 17

    挑战:在数组中找到两对元素,使得 a + b = c + d

  18. 18

    解法:在数组中找到两对元素,使得 a + b = c + d

  19. 19

    挑战:和为0的子列表

  20. 20

    解法:和为0的子列表

  21. 21

    挑战:使用哈希表构造单词

  22. 22

    解决方案:使用哈希表构造单词

  23. 23

    挑战:找出和为 k 的两个数——哈希法

  24. 24

    解决方案:找出和为 k 的两个数——哈希法

  25. 25

    挑战:找出列表中第一个不重复的整数——哈希法

  26. 26

    解决方案:使用哈希法找出列表中第一个不重复的整数

  27. 27

    挑战:链表环检测——哈希法

  28. 28

    解决方案:链表环检测——哈希法

  29. 29

    挑战:使用哈希表删除链表中的重复元素

  30. 30

    解决方案:使用哈希法删除链表中的重复元素

  31. 31

    挑战:链表的并集与交集——哈希法

  32. 32

    解决方案:链表的并集与交集——哈希法

  33. 33

    哈希测验:检验你对哈希的理解程度

数据结构总结
  1. 1

    线性与非线性数据结构概述

  2. 2

    结论

Certificate of Completion

Showcase your accomplishment by sharing your certificate of completion.

Course Author:Anonymous User

Reviews

Read reviews from students who have taken this course and share your own experience.

Reviews & Comments (0)