/Algorithm_LanQiao

算法很美 参考代码

Primary LanguageJavaMIT LicenseMIT

#算法很美 Algorithm
算法与数据结构教程的源码归集。Dxoca

《算法很美》课程学习指导手册
1.1 课程介绍
1.2 题解:如何找数组中唯一成对的那个数
1.3 找出落单的数,这样编程就对了
1.4 一题三解:计算二进制中1的个数
1.5 一条语句判断整数是不是2的整数次方
1.6 位运算思维:将整数的奇偶位互换
1.7 乘2挪整:二进制表示浮点实数
1.8 编程实践:出现k次与出现1次(上)
1.9 编程实践:出现k次与出现1次(下)
2.1 什么是递归
2.2 切蛋糕思维:递归知识练习题
2.3 多分支递归:裴波那契序列
2.4 巧用递推公式解最大公约数
2.5 别有洞天:递归形式进行插入排序
2.6 递归经典问题:汉诺塔游戏
2.7 二分查找的递归解法
2.8 思维更重要:希尔排序
2.9 利用“大O表示法”评估算法复杂度
2.10 常见函数的复杂度计算
2.11 性能对比:顺序查找与二分查找
2.12 大O法应用:基础排序算法的性能对比
2.13 难点突破:三种典型递归形式算法的性能分
2.14 希尔排序的性能玄机
2.15 分析10种排序算法的稳定性
2.16 解题实战:小白上楼梯(递归设计)
2.17 解题实战:旋转数组的最小数字(改造二分法)
2.18 题目详解:在有空字符串中的有序字符串数组中查找
2.19 题目详解:找出最长连续递增子序列
2.20 实战:快速设计一个高效的求a的n次幂的算法
3.1 分治法介绍及关键点解析
3.2 你需要掌握的快速排序算法
3.3 **之单向扫描分区法
3.4 **之双向扫描分区法
3.5 **之三指针分区法
3.6 **在工程实践中的优化
3.7 分治模式的完美诠释:归并排序
3.8 题解:调整数组顺序—奇数在左偶数在右
3.9 最快效率求出乱序数组中第k小的数
3.10 实战解题:哪个数字超过了一半?
3.11 趣味拓展:寻找发帖水王
3.12 实践:最小可用id是多少(上)
3.13 实践:最小可用id是多少(下)
3.14 讲2道关于逆序对的题目
3.15 基础学习:树、二叉树、堆排序
3.16 堆的概念及堆排序思路
3.17 将数组堆化的伪代码
3.18 堆排序的进一步完善
3.19 计数排序的学习
3.20 桶排序
3.21 基数排序
3.22 总结:10种排序算法的对比分析
3.23 相关题解:排序数组中找和的因子
3.24 计算需排序的子数组长度
3.25 知其然知其所以然:小顶堆与topK思路分析
3.26 实战:小顶堆与topK的具体代码实现
3.27 用计数排序解决员工年龄问题
3.28 天外有天:特殊排序
3.29 题解:判断数组的包含问题
4.1 基础题:顺时针打印二维数组
4.2 基础题:将0所在的行列清零
4.3 基础题:Z形打印二位数组
4.4 找出边界为1的最大子方阵
4.5 边界为1的最大子方阵优化(上)
4.6 边界为1的最大子方阵优化(下)
4.7 解题:编程返回子数组最大累加和
4.8 解题:求子矩阵最大累加和
4.9 矩阵运算
5.1 题解:判断字符串有无重复字符
5.2 题解:巧妙翻转字符串
5.3 走出思维误区:变形词问题
5.4 实践:替换字符串中的空格
5.5 题解:压缩字符串
5.6 题解:判断两字符串的字符集是否相同
5.7 题解:旋转词
5.8 题解:将字符串按单词翻转
5.9 题解:去掉字符串中连续出现的k次的0
5.10 题解:神奇的回文串
5.11 题解:最短摘要的生成
5.12 字符串匹配之PabinKarp(上)
5.13 字符串匹配之RabinKarp(下)
5.14 字符串匹配之KMP(上)
5.15 字符串匹配之KMP(下)
5.16 字符串匹配之后缀数组(上)
5.17 字符串匹配之后缀数组(中)
5.18 字符串匹配之后缀数组(下)
5.19 字符串应用:尺取法例题
5.20 字符串应用:next数组例题
5.21 后缀数组的应用(上)
5.22 后缀数组的应用(下)
6.1 巧用进制解决天平称重问题
6.2 经典数学问题:Nim游戏
6.3 阶梯Nim博弈问题
6.4 必备的求和公式,牢记!
6.5 欧几里得算法
6.6 欧几里得算法的扩展-裴蜀公式
6.7 欧几里得算法解一步之遥
6.8 求解同余方程的正确姿势
6.9 一维世界的爱情:青蛙的约会
6.10 特殊的同余方程—逆元
6.11 很有意思的同余方程组
6.12 素数的测试及质因数分解
6.13 素数的筛法
6.14 快速幂运算
7.1 本章预习材料
7.2 双管齐下解决递归问题
7.3 题解:机器人走方格问题
7.4 名企面试题:硬币表示某个给定数值
7.5 “逐步生成结果”之非数值型问题
7.6 题解:子集生成
7.7 子集生成之二进制法
7.8 全排列 (上)
7.9 全排列(中)
7.10 全排列(下)
7.11 闭式解举例
7.12 dfs例题:数独游戏
7.13 dfs竞赛例题:部分和
7.14 dfs竞赛例题解析:水洼数
7.15 回溯和剪枝:n皇后问题
7.16 dfs竞赛题解析:素数环
7.17 dfs竞赛题解析:困难的串
7.18 本章小结
8.1 本章预习材料
8.2 贪心策略简介及硬币支付问题
8.3 贪心策略例题:快速渡河问题
8.4 贪心策略例题:区间调度问题
8.5 贪心策略例题:区间选点问题
8.6 贪心策略例题:区间覆盖问题
8.7 贪心策略例题:字典序最小问题
8.8 几个背包相关的问题
8.9 涨姿势:乘船问题
8.10 总结:以上贪心策略例题的思路总结
8.11 动态规划简介及背包问题
8.12 动态规划例题:背包之dp解法
8.13 贪心策略问题:钢条切割
8.14 动态规划例题:数字三角形
8.15 动态规划例题:LCS(最长公共子序列)
8.16 动态规划例题:完全背包问题
8.17 著名问题:最长递增子序列(上)
8.18 著名问题:最长递增子序列(下)
8.19 本章小结