课程介绍
企业工程需求视角讲解,与蓝桥杯大赛的设计宗旨同源同脉。
由浅入深,大量生动案例题解、企业工程实践性强。帮助大家少走弯路,让练习和刷题更有针对性、更高效率,从而轻松应对各种竞赛额大公司算法笔试。
本课程示范语言:Java,版本:6、7、8
开发工具:IntelliJ Idea
课程目录
第一章《位运算的奇巧淫技》
1.1 课程介绍(16分钟)
1.2 题解:如何找数组中唯一成对的那个树(19分钟)
1.3 找出落单的数,这样编程就对了(2分钟)
1.4 一题三解:二进制中1的个数(10分钟)
1.5 一条语句判断整数是不是2的整数次方(3分钟)
1.6 位运算思维:将整数的奇偶位互换(13分钟)
1.7 乘2挪整:二进制表示浮点实数(8分钟)
1.8 编程实践:出现k次与出现1次(上)(12分钟)
1.9 编程实践:出现k次与出现1次(下)(13分钟)
第二章《查找与排序》(一)
2.1 什么是递归(22分钟)
2.2 切蛋糕思维:递归知识练习题(10分钟)
2.3 多分支递归:裴波那契序列(18分钟)
2.4 巧用递推公式解最大公约数(8分钟)
2.5 别有洞天:递归形式进行插入排序(11分钟)
2.6 递归经典问题:汉诺塔游戏(19分钟)
2.7 二分查找的递归解法(12分钟)
2.8 思维更重要:希尔排序(17分钟)
2.9 利用“大O表示法”评估算法复杂度(16分钟)
2.10 常见函数的复杂度计算(13分钟)
第三章《查找与排序》(二)
3.1 性能对比:顺序查找与二分查找(11分钟)
3.2 大O法应用:基础排序算法的性能对比(13分钟)
3.3 难点:三种典型递归形式算法的性能分析(39分钟)
3.4 希尔排序的性能玄机(20分钟)
3.5 别有洞天:递归形式进行插入排序(11分钟)
3.6 解题实战:小白上楼梯(递归设计)(9分钟)
3.7 解题实战:旋转数组的最小数字(11分钟)
3.8 含空字符串的有序字符串数组中查找(11分钟)
3.9 题目详解:找出最长连续递增子序列(4分钟)
3.10 快速设计一个高效的求a的n次幂的算法(15分钟)
第四章《查找与排序》(三)
4.1 分治法介绍及关键点解析(13分钟)
4.2 你需要掌握的快速排序算法(12分钟)
4.3 快排之单向扫描分区法(20分钟)
4.4 快排之双向扫描分区法(16分钟)
4.5 快排之三指针分区法(12分钟)
4.6 快排在工程实践中的优化(26分钟)
4.7 分治模式的完美诠释:归并排序(25分钟)
4.8 题解:调整数组顺序-奇数在左偶数在右(8分钟)
4.9 最快效率求出乱序数组中第k小的数(26分钟)
4.10 实战解题:哪个数字超过了一半?(11分钟)
第五章《查找与排序》(四)
5.1 趣味拓展:寻找发帖水王(12分钟)
5.2 实践:最小可用id是多少(上)(18分钟)
5.3 实践:最小可用id是多少(下)(15分钟)
5.4 讲2道关于逆序对的题目(18分钟)
5.5 基础学习:树、二叉树、堆排序(16分钟)
5.6 堆的概念及堆排序思路.(15分钟)
5.7 将数组堆化的伪代码(10分钟)
5.8 堆排序的进一步完善(16分钟)
5.9 计数排序的学习(13分钟)
5.10 桶排序(21分钟)
第六章《查找与排序》(五)
6.1 基数排序(17分钟)
6.2 总结:10种排序算法的对比分析(29分钟)
6.3 相关题解:排序树组中找和的因子(7分钟)
6.4 计算需排序的子数组长度(26分钟)
6.5 小顶堆与topK思路分析(11分钟)
6.6 实战:小顶堆与topK问题代码实现(16分钟)
6.7 用计数排序解决员工年龄问题(3分钟)
6.8 天外有天:特殊排序(11分钟)
6.9 题解:判断数组的包含问题(9分钟)
第七章《多维数组和矩阵》
7.1 基础题:顺时针打印二维数组(16分钟)
7.2 基础题:将0所在的行列清零(6分钟)
7.3 基础题:Z形打印二位数组(9分钟)
7.4 找出边界位1的最大子方阵(16分钟)
7.5 边界为1的最大子方阵优化(上)(20分钟)
7.6 边界为1的最大子方阵优化(下)(11分钟)
7.7 题解:编程返回子树组最大累加和(17分钟)
7.8 解题:求子距阵最大累加和(17分钟)
7.9 矩阵运算(17分钟)
第八章《字符串专题》上
8.1 题解:判断字符串有无重复字符(10分钟)
8.2 题解:巧妙翻转字符串(3分钟)
8.3 走出思维误区:变形词问题(6分钟)
8.4 实践:替换字符串中的空格(10分钟)
8.5 题解:压缩字符串(6分钟)
8.6 题解:判断两字符串的字符集是否相同(8分钟)
8.7 题解:旋转词(11分钟)
8.8 题解:将字符串中按单词翻转(5分钟)
8.9 题解:去掉字符串中连接出现的k次的0(8分钟)
8.10 题解:神奇的回文串(7分钟)
第九章《字符串专题》中
9.1 题解:最短摘要的生成(23分钟)
9.2 字符串匹配之PabinKarp(上)(16分钟)
9.3 字符串匹配之RabinKarp(下)(16分钟)
9.4 字符串匹配之KMP(上)(34分钟)
9.5 字符串匹配之KMP(下)(32分钟)
9.6 字符串匹配之后缀数组(上)(23分钟)
9.7 字符串匹配之后缀数组(中)(22分钟)
9.8 字符串匹配之后缀数组(下)(32分钟)
9.9 字符串应用:尺取法例题(12分钟)
9.10 字符串应用:next数组的例题(13分钟)
第十章《字符串专题》下
10.1 后缀数组的应用(上)(10分钟)
10.2 后缀数组的应用(下)(28分钟)
第十一章《数学问题》上
11.1 巧用进制解决天平称重问题(21分钟)
11.2 经典数学问题:Nim游戏(9分钟)
11.3 阶梯Nim博弈(10分钟)
11.4 必备求和公式,牢记!(7分钟)
11.5 欧几里得算法(6分钟)
11.6 欧几里得算法的扩展-裴蜀公式(33分钟)
11.7 欧几里得算法解“一步之遥”(13分钟)
11.8 求解同余方程的正确姿势(15分钟)
11.9 一维世界的爱情:青蛙的约会(15分钟)
11.10 特殊的同余方程-逆元(17分钟)
第十二章《数学问题》下
12.1 很有意思的同余方程组(21分钟)
12.2 素数的测试及质因数分解(11分钟)
12.3 素数的筛法(17分钟)
12.4 快速幂运算(13分钟)
第十三章《递归、DFS、剪枝、回溯等问题》上
13.1 本章预习材料(html,22.4KB)
13.2 双管齐下解决递归问题(27分钟)
13.3 题解:机器人走方格问题(24分钟)
13.4 名企面试题:硬币表示某个给定数值(40分钟)
13.5 “逐步生成结果”之非数值型问题(12分钟)
13.6 题解:子集生成(29分钟)
13.7 子集生成之二进制法(17分钟)
13.8 全排列(上)(9分钟)
13.9 全排列(中)(14分钟)
13.10 全排列(下)(16分钟)
第十四章《递归、DFS、剪枝、回溯等问题》下
14.1 封闭式举例(15分钟)
14.2 dfs例题:数独游戏(27分钟)
14.3 dfs竞赛题:部分和(20分钟)
14.4 dfs竞赛例题解析:水洼数(28分钟)
14.5 回溯和剪枝:n皇后问题(32分钟)
14.6 dfs竞赛题解析:素数环(12分钟)
14.7 著名问题:最长递增子序列(上)(22分钟)
14.8 本章小结(12分钟)
第十五章《贪心策略与动态规划》上
15.1 本章预习材料(md,5.0KB)
15.2 贪心策略简介及硬币支付问题(21分钟)
15.3 贪心策略例题:快速渡河问题(22分钟)
15.4 贪心策略例题:区间调度问题.(19分钟)
15.5 贪心策略例题:区间选点问题(21分钟)
15.6 贪心策略例题:区间覆盖问题(25分钟)
15.7 贪心策略例题:字典序最小问题(16分钟)
15.8 几个背包相关问题(18分钟)
15.9 涨姿势:乘船问题(4分钟)
15.10 总结:以上贪心策略例题的思路总结(12分钟)
第十六章《贪心策略与动态规划》下
16.1 动态规划简介及背包问题(35分钟)
16.2 动态规划例题:背包之dp解法(29分钟)
16.3 动态规划例题:钢条切割(24分钟)
16.4 动态规划例题:数字三角形(24分钟)
16.5 动态规划例题:LCS(最长公共子序列)(32分钟)
16.6 动态规划例题:完全背包问题(14分钟)
16.7 著名问题:最长递增子序列(上)(22分钟)
16.8 著名问题:最长递增子序列(下)(22分钟)
16.9 本章小结(22分钟)
评论0