Logo
☆☆☆☆☆
0.0
Intermediate
15h

《Java版编码面试算法》

算法是编程面试中最常见的主题之一,掌握好算法往往决定了你能否成功获得职位。完成本门全面的Java课程后,你将深入理解各类算法,并掌握一套简单有效的分析复杂问题的方法。 在课程学习过程中,你将接触到面试中可能遇到的最重要算法。你将完成50多个互动编码挑战,并逐一查看每个问题的详细解答。更重要的是,即使你目前对Java还不够熟悉,也能学会如何编写出解决困难编程面试题的最优方案。

10 Lessons
Included in Subscription Plan
Personalized Learning
Powered by AI
《Java版编码面试算法》
算法是编程面试中最常见的主题之一,掌握好算法往往决定了你能否成功获得职位。完成本门全面的Java课程后,你将深入理解各类算法,并掌握一套简单有效的分析复杂问题的方法。 在课程学习过程中,你将接触到面试中可能遇到的最重要算法。你将完成50多个互动编码挑战,并逐一查看每个问题的详细解答。更重要的是,即...

WHAT YOU'LL LEARN

掌握暴力法、贪心、分治、动态规划等常见算法范式。

Content

10 Lessons • 0 Quizzes • 0 Challenges

简介
  1. 1

    目标受众

  2. 2

    学习成果

算法范式
  1. 1

    暴力解法

  2. 2

    贪心算法

  3. 3

    分治法

  4. 4

    动态规划

渐近分析
  1. 1

    比较算法

  2. 2

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

  3. 3

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

  4. 4

    渐近分析与大O符号简介

  5. 5

    其他常见的渐近符号及其为何大O符号占据主导地位

  6. 6

    实用公式

  7. 7

    常见的时间复杂度情况

  8. 8

    挑战:嵌套循环加法的时间复杂度(Big O)

  9. 9

    解决方案:嵌套循环加上加法的时间复杂度(大O表示)

  10. 10

    挑战:包含减法的嵌套循环的时间复杂度(Big O)

  11. 11

    解决方案:包含减法的嵌套循环的时间复杂度(大O表示)

  12. 12

    挑战:包含乘法的嵌套循环的时间复杂度(Big O)

  13. 13

    解决方案:包含乘法的嵌套循环的时间复杂度(大O表示法)

  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

    挑战:找出两个相加等于“n”的数

  7. 7

    解决方案:找出两个相加等于 "n" 的数

  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

    挑战:0/1 背包问题

  6. 6

    解决方案:0/1 背包问题

  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

    挑战:以最低成本连接 n 根管道

  5. 5

    解决方案:以最小成本连接 'n' 根管道

  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

    快速测验!

分治法
  1. 1

    分治算法简介:二分查找

  2. 2

    杨辉三角

  3. 3

    挑战:欧几里得算法

  4. 4

    解法回顾 1:欧几里得算法

  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

    关于分治算法的测验

图算法
  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

    图算法测验

附录:辅助源代码
  1. 1

    栈类

  2. 2

    队列类

  3. 3

    PriorityQueue 类

  4. 4

    HashMap 类

  5. 5

    ArrayList 类

结论
  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)