选了10个编程题目,复习一下基础的算法。挑选的时候找了尽可能少的数量,去覆盖尽可能多的算法思想。
分别是以下10个:
1 快速排序
2 全排列
3 平衡二叉树
4 最大堆
5 并查集
6 Prim最小生成树
7 Dijkstra 最短路径
8 KMP
9 LCS
10 反转链表保存的字符串
分割线后面的是这个编程问题包含的知识点
1 快速排序 | 分治、递归、排序
2 全排列 | 递归、排列问题
3 平衡二叉树 | 排序、数据结构树及其遍历、递归
4 最大堆 | 排序、数据结构堆和数组
5 并查集 | 数据结构、连通问题
6 Prim 最小生成树 | 数据结构图及其遍历、最小生成树问题、贪心
7 Dijkstra 最短路径 | 数据结构图及其遍历、最短路径、动态规划
8 字符串匹配 KMP | 字符串
9 最长公共子序列 LCS | 二维数组、递归、动态规划
10 反转链表保存的字符串 | 数据结构链表操作:创建、添加和遍历。
代码不贴出来了,这些最常见的算法网上一搜就有。
最好做到可以默写,并独自生成测试数据来测试自己的程序。