Logo
☆☆☆☆☆
0.0
Beginner
35h

Java 编程面试中的数据结构

数据结构是计算机科学的基础之一,也是每个程序中至关重要的决策环节。因此,在工业界的技术面试中,数据结构通常被视为衡量计算机科学知识水平的关键基准。本课程全面深入地回顾了所有常见的数据结构,并提供了基于Java的实现细节,帮助读者充分掌握相关技能。 现在,课程包含比以往更多的代码解答、教学内容和图解说明,是您学习的最佳选择!

10 Lessons
Included in Subscription Plan
Personalized Learning
Powered by AI
Java 编程面试中的数据结构
数据结构是计算机科学的基础之一,也是每个程序中至关重要的决策环节。因此,在工业界的技术面试中,数据结构通常被视为衡量计算机科学知识水平的关键基准。本课程全面深入地回顾了所有常见的数据结构,并提供了基于Java的实现细节,帮助读者充分掌握相关技能。 现在,课程包含比以往更多的代码解答、教学内容和图解...

TAKEAWAY SKILLS

Programming Language
Java
Prepare for Interview
Data Structures
Time Complexity

Content

10 Lessons • 0 Quizzes • 0 Challenges

复杂度度量
  1. 1

    比较算法

  2. 2

    示例:测量单循环算法的时间复杂度

  3. 3

    示例:嵌套循环算法的时间复杂度

  4. 4

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

  5. 5

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

  6. 6

    实用公式

  7. 7

    常见复杂度场景

  8. 8

    挑战:带加法的嵌套循环的时间复杂度(大O表示法)

  9. 9

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

  10. 10

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

  11. 11

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

  12. 12

    挑战:嵌套循环中带有乘法的代码的时间复杂度分析

  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

    什么是列表?

  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

    链表与数组的对比

  7. 7

    什么是双向链表(DLL)?

  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

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

  27. 27

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

  28. 28

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

  29. 29

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

  30. 30

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

  31. 31

    链表面试题

栈/队列
  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

    图算法面试题

树
  1. 1

    什么是树?

  2. 2

    树的类型

  3. 3

    一棵树为何被称为平衡树?

  4. 4

    什么是二叉树?

  5. 5

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

  6. 6

    偏斜二叉树

  7. 7

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

  8. 8

    二叉搜索树中的插入

  9. 9

    BST中的插入操作(完整实现)

  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

    解决方案:使用 Trie 进行数组排序

  12. 12

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

  13. 13

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

  14. 14

    Trie 面试题

堆
  1. 1

    什么是堆

  2. 2

    为什么使用堆?

  3. 3

    堆在数组中的表示

  4. 4

    最大堆:简介

  5. 5

    最大堆(实现)

  6. 6

    最小堆:简介

  7. 7

    最小堆(实现)

  8. 8

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

  9. 9

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

  10. 10

    挑战:在数组中找到第 k 个最小的元素

  11. 11

    解法:在数组中找到最小的 k 个元素

  12. 12

    挑战:在数组中找到最大的 K 个元素

  13. 13

    解决方案:在数组中找到最大的 K 个元素

  14. 14

    堆面试题

哈希表
  1. 1

    什么是哈希表?

  2. 2

    哈希函数

  3. 3

    哈希表中的冲突

  4. 4

    从零构建一个哈希表

  5. 5

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

  6. 6

    哈希表的完整实现

  7. 7

    Trie 与哈希表

  8. 8

    HashMap 与 HashSet

  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)