说明
github地址:https://github.com/lawlite19/AlgorithmExercises一、 排序算法
1. 交换排序
冒泡排序 冒泡排序改进1 冒泡排序改进2 冒泡排序改进3 快速排序2. 插入排序
直接插入排序 直接插入排序递归版 希尔排序3. 选择排序
简单选择排序 二元选择排序 堆排序4. 归并排序
二路归并排序递归版 二路归并排序非递归版二、 字符串
1. 字符串旋转
字符串旋转_暴力法 字符串旋转_三步翻转法2. 字符串包含
字符串包含判断_遍历 字符串包含判断_排序 字符串包含判断_素数乘积 字符串包含判断_哈希 ★★★3. 回文
回文判断4. 最长回文子串长度
最长回文子串长度_一般解法 最长回文子串长度_Manacher ★★★ 算法说明5. 全排列
全排列_递归 全排列_字典序排列 字典序全排列6. 变形词
变形词判断7. 字符串中数字串之和
字符串中数字串之和 ★8. 去除字符串中连续K个0串
去除字符串中连续K个0串9. 整数字符串转整数值
整数字符串转整数值 ★★10. 字符串匹配问题
字符串匹配_KMP ★★★★★ 算法说明三、 数组和矩阵
1. 二维数组查找
二维数组查找2. 矩阵相关操作
转圈打印矩阵3. 最小的k个元素
最小的k个元素_堆 最小的k个元素_BFPRT ★★★★★ 算法说明4.中间数
中间数_辅助数组 ★5.非负数组和为K的最长子数组
非负数组和为K的最长子数组_双指针 ★★★8.次数出现大于N/K的数
次数出现大于N/2的数 ★ 次数出现大于N/K的数 ★★★9.逆序对
逆序对数_分治归并★10.两个有序数组的中位数
两个有序数组的中位数_分治★★★★ 算法说明四、 递归和动态规划
1. 斐波那契问题
矩形覆盖_递归
矩形覆盖_dp ★
矩阵覆盖_矩阵转化_class实现 ★★★
矩阵覆盖_矩阵转化_vector实现 ★★★
算法说明爬楼梯_递归
爬楼梯_dp ★
变态跳台阶_递归
变态跳台阶_直接计算 ★
2. 最大子数组和相关问题
最大子数组和_dp ★ 两个不相容子数组最大和_辅助数组 ★★3. 最长递增子序列相关问题
最长递增子序列_一般dp 最长递增子序列_dp优化 ★★ 摞数组问题(俄国沙皇问题)_纯代码实现 ★★★★ 摞数组问题(俄国沙皇问题)_借助stl ★★★★五、 栈和队列
1. getMin功能栈
getMin功能栈_方案1 getMin功能栈_方案22. 两个栈实现队列功能
两个栈实现队列七、二叉树
1. 遍历
先、中、后序遍历_递归 先、中、后序遍历_非递归 ★★八、位运算
出现奇数次的数免责声明:文章内容来自互联网,本站不对其真实性负责,也不承担任何法律责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:数据结构算法练习 https://www.yhzz.com.cn/a/18088.html