Logo
☆☆☆☆☆
0.0
Intermediate
15h

《C++版编码面试算法》

由于算法在编程面试中 arguably 是最常出现的主题,掌握算法能力往往决定了你能否成功获得职位。完成本课程后,你将深入理解各类算法,并掌握一套简单有效的复杂度分析方法。 随着课程的推进,你将接触到面试中最常见的核心算法,完成50多个互动编码挑战,并逐题学习详细的解题思路。你将具备直接应对复杂编程面试题并逐步推导出最优解的能力。 本课程是广受欢迎的《面试复习》系列的最新内容,该系列已帮助众多开发者成功入职谷歌、微软、苹果等顶尖企业。

10 Lessons
Included in Subscription Plan
Personalized Learning
Powered by AI
《C++版编码面试算法》
由于算法在编程面试中 arguably 是最常出现的主题,掌握算法能力往往决定了你能否成功获得职位。完成本课程后,你将深入理解各类算法,并掌握一套简单有效的复杂度分析方法。 随着课程的推进,你将接触到面试中最常见的核心算法,完成50多个互动编码挑战,并逐题学习详细的解题思路。你将具备直接应对复杂编...

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

    解决方案:嵌套循环中包含减法操作的时间复杂度分析

  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

    挑战:找出两个相加等于目标值 s 的数

  7. 7

    解决方案:找出两个相加等于目标值 "s" 的数

  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

    挑战:计算给定图中某一层的节点数量

  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

    解决方案回顾:计算金额

  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

    解决方案:寻找最小生成树 —— 普里姆算法

  21. 21

    挑战:找出每个节点到源点的最短距离

  22. 22

    解决方案:每个节点到源点的最短距离

  23. 23

    贪心算法测验

动态规划
  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

    解决方案:欧几里得算法

  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

    STL 类

  2. 2

    链表辅助数据结构

  3. 3

    数组函数

  4. 4

    图的辅助数据结构

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