学习有效期:永久观看
学习时长:1788分钟
学习计划:30天
难度:中
CEO/董事长/总经理
讲师介绍:夏曹俊:南京捷帝科技有限公司创始人,南京大学计算机硕士毕业,有15年c++跨平台项目研发的经验,领导开发过大量的c++虚拟仿真,计算机视觉,嵌入式图像处理,云安全审计项目,比赛鹰眼系统,主编出版过《C++实训教程》,并同时熟悉php,c#,java,安卓项目研发。
算法设计与分析是考察程序开发人员技术水平的重要内容之一,并且在企业面试、日常工作、都占有重要的地位。然而,不同与数据结构,初步进入软件开发行业的学员往往对于算法存在敬畏和畏怯的心理。为了帮助广大学员朋友切实提升程序开发技巧,积累学习信心,克服畏难情绪,丁宋涛和夏曹俊老师共同精心设计了本门课程。丁宋涛老师常年服务于普通类本科院校的教育教学,同时拥有蓝桥杯全国二等奖、省赛一等奖的指导经验,拥有专业性的教学指导经验;同时,本课程从北京大学onlinejudge入手,从浅入深的讲解基本算法的核心思想;再结合leetcode企业级真题库为广大程序员顺利求职加薪提供助力。leetcode是企业级笔试面试的专业题库,是广大求职人员都需要打磨、参考的宝贵资料。为了能脚踏实地的服务最广大的程序员朋友,本课程将以基础的形式为广大求职人员提供完备的参考手册,为提升薪资、获取高阶的工作机会提供切实有效的帮助。
第1章:算法引论 |
1.课程介绍 |
2.引论:何谓算法、时间、空间复杂度和大O理论 |
3.算法的设计与选择:算法与数据结构的关系 |
4.算法时间复杂度分析基础(循环):规模n与初始状态影响分析 |
5.算法时间复杂度分析基础(递归) |
第2章:算法设计初步:模拟法实现程序设计 |
1.循环设计算法的一类技巧:列表模拟探索算法规律 |
2.递归是模拟法的一种强有力表达:以自然数求组合为例 |
3.POJ 3237鸡兔同笼:openjudge使用与模拟法训练题 |
4.POJ 2808 校门外的树 |
5.POJ 2701 与7无关的数 |
第3章:暴力法与枚举程序设计思想 |
1.控制搜索规模是枚举成败的核心因素:枚举就是遍历集合空间可能解的过程 |
2.百钱百鸡问题:搜索空间的优化与枚举, |
3.算式乘法问题:逆向观察降维搜索解空间 |
4.abcde/fghij=n:避免阶乘规模的枚举 |
5.1/k=1/x+1/y问题:未知范围下的枚举空间查找思路设计 |
6.POJ 2692 假币问题 |
7.POJ 4148 生理周期:OJ上time limit exceed现象的解决演示 |
8.POJ 4138 质数的和与积 |
第4章:递归与分治 |
1.分治法的思想:从曹冲称象来学习分治法的思想 |
2.分治与查找:找出一个序列中第k小的数 |
3.分治模式的套路:循环日程安排问题 |
4.子问题不相似的分治:棋盘覆盖问题 |
5.分治模式的套路:二分法是经典的分治思想 |
6.POJ 2787 24点游戏:递归分治法 |
7.POJ 2503 在线翻译:二分查找的经典应用 |
8.POJ 4143 和为给定的数 |
第5章:贪心算法 |
1.贪心思想概述:最优子结构与短作业优先算法的案例 |
2.最优装载问题 |
3.选择不相交区间问题 |
4.POJ 4110 圣诞老人的礼物 |
5.POJ 2287 田忌赛马问题 |
6.POJ 4137 最小新整数 |
第6章:动态规划 |
1.数塔问题:动态规划思想入门 |
2.最短编辑距离问题 |
3.最大连续子序列和 |
4.POJ 2533 最长上升子序列 |
第7章:笔试面试实战Leetcode(基础篇完全手册) |
1.[1]两数之和:vs code 建立leetcode答题 |
2.[7] 整数反转 |
3.[9] 回文数 |
4.[13] 罗马数字转整数 |
5.[14]最长公共前缀 |
6.[20] 有效的括号 |
7.[21] 合并两个有序链表 |
8.[26] 删除排序数组中的重复项 |
9.[27] 移除元素 |
10.[28] 实现strStr() |
11.[35] 搜索插入位置 |
12.[38] 报数 |
13.[53] 最大子序和 |
14.[58] 最后一个单词的长度 |
15.[66] 加一 |
16.[67] 二进制求和 |
17.[69] x 的平方根:经典的二分法思想 |
18.[70] 爬楼梯:经典的斐波那契数列与递归超时 |
19.[83] 删除排序链表中的重复元素 |
20.[88] 合并两个有序数组 |
21.[100] 相同的树 |
22.[101] 对称二叉树 |
23.[104] 二叉树的最大深度 |
24.[107] 二叉树的层次遍历 II |
25.[108] 将有序数组转换为二叉搜索树 |
26.[110] 平衡二叉树 |
27. [111] 二叉树的最小深度 |
28.[112] 路径总和 |
29.[118] 杨辉三角 |
30.[119] 杨辉三角 II |
31.[121] 买卖股票的最佳时机 |
32.[122] 买卖股票的最佳时机 |
33.[125] 验证回文串 |
34.[136] 只出现一次的数字 |
35.[141] 环形链表 |
36.[155] 最小栈 |
37.[160] 相交链表 |
38.[167] 两数之和 II |
39.[168] Excel表列名称 |
40.[169] 求众数 |
41.[171] Excel表列序号 |
42.[172] 阶乘后的零 |
43.[189] 旋转数组 |
44.[190] 颠倒二进制位 |
45.[191] 位1的个数 |
46.[198] 打家劫舍 |
47.[202] 快乐数 |
48.[203] 移除链表元素 |
49.[204] 计数质数:筛选法求质数 |
50.[205] 同构字符串 |
51.[206] 反转链表 |
52.[217] 存在重复元素 |
53.[219] 存在重复元素 II |
54.[225] 用队列实现栈 |
55.[226] 翻转二叉树 |
56.[231] 2的幂 |
57. [232] 用栈实现队列 |
58. [234] 回文链表 |
59.[235] 二叉搜索树的最近公共祖先 |
60.[237] 删除链表中的节点 |
61.[242] 有效的字母异位词 |
62.[257] 二叉树的所有路径 |
63.[258] 各位相加 |
64.[263] 丑数 |
65.[268] 缺失数字 |
66.[278] 第一个错误的版本 |
67.[283] 移动零 |
68.[290] 单词模式 |
69.[292]Nim 游戏 |
70.[303] 区域和检索 - 数组不可变 |
71.[326] 3的幂 |
72.[342] 4的幂 |
73.[344] 反转字符串 |
74.[345] 反转字符串中的元音字母 |
75.[349] 两个数组的交集 |
76.[350] 两个数组的交集 II |
77.[367] 有效的完全平方数 |
78.[371] 两整数之和:不用+-计算两数之和 |
79.[374] 猜数字大小 |
80.[383] 赎金信 |
81.[387] 字符串中的第一个唯一字符 |
82.[389] 找不同 |
83.[400] 第N个数字 |
84. [401] 二进制手表 |
85.[404] 左叶子之和 |
86.[405] 数字转换为十六进制数 |
87. [409] 最长回文串 |
88.[412] Fizz Buzz |
89.[414] 第三大的数 |
90.[415] 字符串相加 |
91.[427] 建立四叉树 |
92.[429] N叉树的层序遍历 |
93.[434] 字符串中的单词数 |
94.[437] 路径总和 III |
95.[438] 找到字符串中所有字母异位词 |
96.[441] 排列硬币 |
97.[443] 压缩字符串 |
98.[447] 回旋镖的数量 |
99.[448] 找到所有数组中消失的数字 |
100.[453]最小移动次数使数组元素相等 |
101.[455] 分发饼干 |
102.[459] 重复的子字符串 |
103.[461] 汉明距离 |
104. [463] 岛屿的周长 |
105. [475] 供暖器 |
106. [476] 数字的补数 |
107. [482] 密钥格式化 |
108. [485] 最大连续1的个数 |
109. [492] 构造矩形 |
110. [496] 下一个更大元素 I |
111. [500] 键盘行 |
112. [501] 二叉搜索树中的众数 |
113. [504] 七进制数 |
114.[506]相对名次 |
115. [507] 完美数 |
116. [509] 斐波那契数 |
117. [520] 检测大写字母 |
118. [521] 最长特殊序列 Ⅰ |
119. [530] 二叉搜索树的最小绝对差 |
120. [532] 数组中的K-diff数对 |
121. [538] 把二叉搜索树转换为累加树 |
122. [541] 反转字符串 II |
123. [543] 二叉树的直径 |
124. [551] 学生出勤记录 I |
125. [557] 反转字符串中的单词 |
126. [558] 四叉树交集 |
127. [559] N叉树的最大深度 |
128. [561] 数组拆分 I |
129. [563] 二叉树的坡度 |
130. [566] 重塑矩阵 |
131. [572] 另一个树的子树 |
132. [581] 最短无序连续子数组 |
133. [575] 分糖果 |
134. [589] N叉树的前序遍历 |
135.[598] 范围求和 |
136. [590] N叉树的后序遍历 |
137. [594] 最长和谐子序列 |
138.[606] 根据二叉树创建字符串 |
139.[617] 合并二叉树 |
140.[599] 两个列表的最小索引总和 |
141.[605] 种花问题 |
142.[628] 三个数的最大乘积 |
143.[633] 平方数之和 |
144.[637] 二叉树的层平均值 |
145.[643] 子数组最大平均数 I |
146.[645] 错误的集合 |
147.[653] 两数之和 IV - 输入 BST |
148.[657] 机器人能否返回原点 |
149.[661] 图片平滑器 |
150. [665] 非递减数列 |
151.[669] 修剪二叉搜索树 |
152.[671] 二叉树中第二小的节点 |
153.[674] 最长连续递增序列 |
154.[680] 验证回文字符串 Ⅱ |
155.[682] 棒球比赛 |
156.[686] 重复叠加字符串匹配 |
157.[687] 最长同值路径 |
158.[690] 员工的重要性 |
159.[693] 交替位二进制数 |
160.[696] 计数二进制子串 |
161.[697] 数组的度: 巧用map |
162.[700] 二叉搜索树中的搜索 |
163.[703] 数据流中的第K大元素 |
164.[704] 二分查找 |
165.[705] 设计哈希集合 |
166.[706] 设计哈希映射 |
167.[707] 设计链表:(cpp版力扣中国测试用例的干扰)与C/C++编程环境解决方案切换 |
168.[709] 转换成小写字母 |
169.[717] 1比特与2比特字符 |
170.[720] 词典中最长的单词 |
171.[724] 寻找数组的中心索引 |
172.[728] 自除数 |
173.[733] 图像渲染 |
174.[744] 寻找比目标字母大的最小字母 |
175.[746] 使用最小花费爬楼梯 |
176.[747] 至少是其他数字两倍的最大数 |
177.[748] 最短完整词 |
178.[754] 到达终点数字 |
179.[762] 二进制表示中质数个计算置位 |
180.[766] 托普利茨矩阵 |
181.[771] 宝石与石头 |
182.[783] 二叉搜索树结点最小距离 |
183.[784] 字母大小写全排列 |
184.[788] 旋转数字 |
185.[796] 旋转字符串 |
186. [804] 唯一摩尔斯密码词 |
187.[806] 写字符串需要的行数 |
188.[811] 子域名访问计数 |
189.[812] 最大三角形面积 |
190.[819] 最常见的单词 |
191.[821] 字符的最短距离 |
192.[824] 山羊拉丁文 |
193.[830] 较大分组的位置 |
194.[832] 翻转图像 |
195.[836] 矩形重叠 |
196.[840] 矩阵中的幻方 |
197.[844] 比较含退格的字符串 |
198.[849] 到最近的人的最大距离 |
199.[852] 山脉数组的峰顶索引 |
200.[859] 亲密字符串 |
201.[860] 柠檬水找零 |
202.[867] 转置矩阵 |
203.[868] 二进制间距 |
204.[872] 叶子相似的树 |
205.[874] 模拟行走机器人 |
206.[876] 链表的中间结点:快慢指针法 |
207.[883] 三维形体投影面积 |
208.[884] 两句话中的不常见单词 |
209.[888] 公平的糖果交换 |
210.[892] 三维形体的表面积 |
211.[893] 特殊等价字符串组 |
212.[896] 单调数列 |
213.[897] 递增顺序查找树 |
214.[905] 按奇偶排序数组 |
215.[908] 最小差值 I |
216.[914] 卡牌分组 |
217.[917] 仅仅反转字母 |
218.[922] 按奇偶排序数组 II |
219.[925] 长按键入 |
220.[929] 独特的电子邮件地址 |
221.[933] 最近的请求次数 |
222.[937] 重新排列日志文件 |
223.[938] 二叉搜索树的范围和 |
224.[941] 有效的山脉数组 |
225.[942] 增减字符串匹配 |
226.[944] 删列造序 |
227.[949] 给定数字能组成的最大时间 |
228.[953] 验证外星语词典 |
229.[961] 重复 N 次的元素 |
230.[965] 单值二叉树 |
231.[970] 强整数 |
232.[976] 三角形的最大周长 |
233.[977] 有序数组的平方 |
234.[985]查询后的偶数和 |
235.[989] 数组形式的整数加法 |
236.[993] 二叉树的堂兄弟节点 |
237.[994] 腐烂的橘子 |
238.[997] 找到小镇的法官 |
239.[999] 车的可用捕获量 |
240.[1002] 查找常用字符 |
241.[1005] K 次取反后最大化的数组和 |
242.[1009] 十进制整数的反码 |
243.[1010] 总持续时间可被 60 整除的歌曲 |
244.[1013] 将数组分成和相等的三个部分 |
245.[1018] 可被 5 整除的二进制前缀 |
246.[1021] 删除最外层的括号 |
247.[1022] 从根到叶的二进制数之和 |
248.[1025] 除数博弈 |
249.[1029] 两地调度 |
250.[1030] 距离顺序排列矩阵单元格 |
251.[1033]移动石子直到连续 |
252.[1037] 有效的回旋镖 |
253.[1041] 困于环中的机器人 |
254.[1042] 不邻接植花 |
技术专家系统讲解传授思路与实战。
专属社群随时沟通与讲师答疑,扫清学习障碍。
超实用资料,覆盖核心知识,关键技能,方便练习巩固。
企业常见实战案例,带你掌握Python在工作中的不同运用场景。
2019Python开发者大会视频免费观看,送你一个近距离感受互联网大佬的机会。
满足不同场景学习需求,不受空间、地域限制。
CSDN联合大厂博客专家,为优秀学员推荐具有竞争力的工作机会 。
【完善的技术体系】
技术成长循序渐进,帮助用户轻松掌握
掌握C/C++知识,扎实编码能力
【清晰的课程脉络】
浓缩大牛多年经验,全方位构建出系统化的技术知识脉络,同时注重实战操作。
【仿佛在大厂实习般的课程设计】
课程内容全面提升技术能力,系统学习大厂技术方法论,可复用在日后工作中。
1.结合openjudge网站,从细节入手,点滴积累程序设计与算法分析的基本技能,帮助学员客服算法学习的困难。
2.踏踏实实做教育,真真切切讲技术,结合leetcode企业笔试面试题库储备过关技巧。
3.结合stl、熟练运用数据结构,达到学以致用的根本目的。