视频课程 人浏览 历史评分   更新时间: 30天前 随到随学

课程介绍

注意0:欲购买此课程,获取安全购买链接,索要正版授权学习平台账号,务必加咨询QQ:2536379620
注意1:由于编码原因,试听课程视频画面清晰度不如最终购买的视频。最终购买视频的画面清晰度可参见以下两张图。图1   图2
注意2:正版良心视频,购买后有机会和原作者直接短暂技术交流。
    
注意3:感觉课程太难?没有信心?还在犹豫自己学的会学不会?我们的师傅带徒弟模式(5倍下单)会给您信心。我们承诺,商品详情,教学大纲,视频内容,所涉及技术,可获得原创作者老师微信或QQ和针对视频范围的精心指导。线上一对一师带徒辅导问答,针对视频内代码调试,使命必达,视频之外相关技术内容,行业内信息人脉,企业内推(如有),原创作者老师会竭诚帮助。

以上所示价格,只能自行学习视频和获取少量解答。师傅带徒弟课程(5倍下单左右,可以先和客服联系,可获得老师的联系方法和针对视频范围的精心指导。线上一对一师带徒辅导问答,针对视频内代码调试,使命必达。)



16+常用数据结构
14+类常见算法
50+道经典算法面试题
10000+行高质量手写代码
助你提升内功,每月多赚10000元
助你进价资深开发,直指架构CTO
助你进入大厂,提高职业高度
助你提高对实际问题抽象的能力

课程大纲

01
数组:课程内容

课程内容(3分钟)
02
数组:静态数组

随机读写性能很棒(11分钟)

随机新增元素(7分钟)

随机删除元素(7分钟)
03
数组:二次封装静态数组

二次封装内置数组(13分钟)        暂无试看

新增操作(7分钟)

查询操作(10分钟)

修改操作(2分钟)

删除操作(7分钟)

支持存储任意类型(7分钟)

常用操作的时间和空间复杂度(9分钟)
04
数组:动态数组

扩容(9分钟)

缩容(7分钟)

缩容的 bug 修复(6分钟)

均摊时间复杂度(11分钟)

静态数组对比动态数组(4分钟)

Java 内置的动态数组(3分钟)
05
链表:课程内容

课程内容(4分钟)

指针和引用(5分钟)

为什么需要链表(8分钟)

链表对比数组(4分钟)

节点表示(5分钟)
06
链表:单向链表

链表的基础实现(7分钟)

链表查询指定索引的元素(6分钟)

索引和 size 的关系(2分钟)

链表查询指定索引的元素代码实现(4分钟)

修改指定索引节点的值(3分钟)

添加头节点(5分钟)

链表中间添加节点(5分钟)

中间添加节点代码实现(6分钟)

删除头节点(5分钟)

删除中间节点(8分钟)
07
链表:单向链表

虚拟节点(8分钟)

链表遍历的另一种方式(5分钟)

覆写 toString 方法(3分钟)

链表方法测试(4分钟)

链表时间复杂度分析(6分钟)
08
链表:双向链表

基本实现(6分钟)

优缺点(6分钟)

优势(3分钟)

修改双向链表节点的值(4分钟)

插入头节点(6分钟)

插入尾节点(4分钟)

插入中间节点(6分钟)

删除头节点(5分钟)

删除尾节点(4分钟)

删除中间节点(6分钟)
09
链表:双向链表

常用操作时间复杂度分析(4分钟)

Java 内置的链表说明(2分钟)
10
栈和队列:课程内容

课程内容(4分钟)
11
栈:栈的特点和使用场景

栈的特点(4分钟)

系统方法调用栈(5分钟)

后退前进功能(5分钟)
12
栈:栈的实现

抽象栈接口方法(5分钟)

数组实现栈:选择使用右端作为栈顶(4分钟)

数组实现栈代码实现(6分钟)

动态数组实现栈(4分钟)

数组实现栈的测试(6分钟)

链表实现栈:选择左边作为栈顶(4分钟)

链表实现栈代码实现(6分钟)

动态数组实现的栈对比链表实现的栈(9分钟)

Java 内置的栈结构(5分钟)
13
lc 20 :有效的括号

【习题】【题目描述】:有效的括号(1道)

题目解释(3分钟)

暴力解法(8分钟)

暴力解法优化(7分钟)

辅助栈解法(8分钟)
14
lc 155 :最小栈

【习题】题目描述(1道)

辅助栈解决方案(10分钟)

辅助栈解决方案代码实现(4分钟)

使用一个栈实现(7分钟)

自定义栈实现(7分钟)
15
队列:队列的特点和实现

队列特点(2分钟)

队列抽象接口(3分钟)

数组实现队列分析(3分钟)

数组实现队列代码(6分钟)

链表实现队列(5分钟)
16
队列:循环队列

循环队列解决的问题(6分钟)

循环队列基础实现(8分钟)

如何判断循环队列满了(7分钟)

计算循环队列的容量(2分钟)

循环队列的扩缩容(6分钟)

循环队列的测试(5分钟)
17
队列:各种队列实现方式的比较和优化

对比循环队列数组队列性能(5分钟)

优化链表实现队列(4分钟)

优化链表实现队列的入队操作(5分钟)

优化链表实现队列的出队操作(5分钟)

对比两种链表实现的队列性能(3分钟)

对比数组队列和链表队列性能(5分钟)
18
队列:Java 中的队列

补充知识:队列容量(3分钟)

补充知识:双端队列(3分钟)

Java 内置队列的继承实现体系(6分钟)

Java Queue 中方法讲解(5分钟)

Java Deque 中方法讲解(5分钟)

Java 队列的实现(6分钟)

双端队列实现栈的功能(5分钟)
19
剑指  9 :用两个栈实现队列

【习题】题目描述(1道)

视频讲解(9分钟)
20
双指针编程技巧:基础

基础:方法参数传递数组(4分钟)

基础:数组两个元素交换(5分钟)
21
双指针编程技巧:快慢指针

案例问题描述:移动零(3分钟)

问题朴素解法(7分钟)

移动零输入输出同一个数组(4分钟)

移动零双指针解法讲解(8分钟)

移动零双指针代码实现(3分钟)

移动零双指针之快慢指针(3分钟)

移动零双指针实现性能优化(9分钟)
22
双指针编程技巧:对撞指针

反转字符串问题描述(3分钟)

反转字符串朴素解法(7分钟)

反转字符串双指针解法(9分钟)

反转字符串双指针之对撞指针(3分钟)

总结(5分钟)
23
lc 27 和 125

【习题】lc 27 和 125(2道)
24
递归编程技巧:彻底理解并掌握递归编程技巧

方法调用系统栈(5分钟)

方法调用本身(9分钟)

方法调用本身的参数变化(6分钟)

方法调用本身的意义(15分钟)

斐波那契数(6分钟)

走台阶(8分钟)

【习题】递归总结(1道)
25
排序算法:基础

排序基础(6分钟)
26
排序算法:冒泡排序

什么是冒泡排序(4分钟)

冒泡排序详细步骤(6分钟)

冒泡排序的时间复杂度(3分钟)

冒泡排序代码实现(8分钟)

冒泡排序的特点(3分钟)

冒泡排序的优化(5分钟)
27
排序算法:选择排序

什么是选择排序(3分钟)

选择排序详细步骤(6分钟)

选择排序的时间复杂度(2分钟)

选择排序代码实现(5分钟)

抽取交换方法到父类(3分钟)

选择排序的特点(3分钟)
28
排序算法:插入排序

什么是插入排序(6分钟)

插入排序详细步骤(5分钟)

插入排序的时间复杂度(2分钟)

插入排序代码实现(6分钟)

插入排序的特点(2分钟)

插入排序的优化(10分钟)

冒泡排序、选择排序以及插入排序性能对比(16分钟)
29
排序算法:希尔排序

什么是希尔排序(7分钟)

希尔排序递增序列计算公式(8分钟)

希尔排序递增序列计算实现(7分钟)

希尔排序倒序遍历递增序列(3分钟)

希尔排序详细步骤(8分钟)

希尔排序代码实现(5分钟)

希尔排序对比插入排序性能(5分钟)

希尔排序的特点(6分钟)
30
排序算法:归并排序

什么是归并排序(4分钟)

归并排序的递归性质(6分钟)

归并排序总体代码实现(8分钟)

再次理解归并排序的代码(4分钟)

归并排序合并的逻辑讲解(6分钟)

归并排序合并的代码实现(6分钟)

归并排序拷贝代码实现(3分钟)

归并排序临时数组优化(9分钟)

归并排序合并代码的另一种实现(9分钟)

归并排序时间复杂度分析(7分钟)
31
排序算法:归并排序

归并排序的特点(3分钟)

自底朝上的归并排序逻辑(4分钟)

自底朝上归并排序实现(8分钟)
32
排序算法:快速排序

什么是快速排序(4分钟)

快速排序符合递归的三个条件(5分钟)

快排的递归代码实现(8分钟)

深入理解快排过程(7分钟)

分区的逻辑过程讲解(6分钟)

分区逻辑代码实现(4分钟)

快速排序的特点(8分钟)

快速排序的优化(7分钟)

三路快排的逻辑讲解(10分钟)

三路快排实现(8分钟)
33
排序算法:桶排序

什么是桶排序(5分钟)

桶排序的时间复杂度分析(5分钟)

桶排序的代码实现(14分钟)

桶排序的特点(6分钟)

桶排序解决外部排序(8分钟)
34
排序算法:计数排序

什么是计数排序(5分钟)

计数排序步骤详解(9分钟)

计数排序代码实现(9分钟)

计数排序的特点(7分钟)

考虑负数的计数排序(7分钟)
35
排序算法:基数排序

什么是基数排序(5分钟)

选择计数排序给基数排序的每位排序(5分钟)

基数排序实现按个位数排序(6分钟)

基数排序的代码实现(7分钟)

基数排序的特点(4分钟)
36
排序算法:Java 内置排序算法

排序算法的分类(4分钟)

排序算法选择的建议(8分钟)

平方时间复杂度算法对比 nlogn 算法(6分钟)

如何写一个通用的排序算法(9分钟)

引用类型实现 Comparable 可比较(9分钟)

引用类型实现 Comparator 可比较(6分钟)

引用类型数组排序(Comparable)(7分钟)

引用类型数组排序(Comparator)(6分钟)
37
排序算法:Java 内置排序算法

Java 内置的引用类型数组排序功能(5分钟)

引用类型数组排序需要稳定(6分钟)

动态数组的排序(4分钟)

【习题】分治思想(1道)
38
lc 56 :合并区间

【习题】lc 56 :合并区间(1道)

题目解释(2分钟)

解题思路(7分钟)

代码实现(7分钟)
39
lc 252 :会议室

【习题】lc 252 :会议室(1道)
40
lc 179 :最大数

【习题】lc179 :最大数(1道)

解题思路(11分钟)

代码实现(8分钟)
41
剑指   45 :把数组排成最小的数

【习题】剑指 45:把数组排成最小的数(1道)
42
lc 75 :颜色分类

【习题】lc 75 :颜色分类(1道)

计数排序解决问题(6分钟)

计数排序解决方案代码实现(4分钟)

三路快排分区解决问题(4分钟)

三路快排解决方案代码实现(4分钟)
43
lc 164 :最大间距

【习题】lc 164 :最大间距(1道)

快排解决方案(6分钟)

基数排序解决方案(4分钟)

桶排序解决方案思路(8分钟)

桶排序解决方案详细步骤(9分钟)

桶排序代码实现(10分钟)
44
剑指  51 :数组中的逆序对

【习题】剑指 51 :数组中的逆序对(1道)

数组中的逆序对题目解释(2分钟)

数组中的逆序对暴力解法(5分钟)

数组中的逆序对归并排序解法(10分钟)

数组中的逆序对归并代码实现(11分钟)
45
二分查找:最基本的二分查找算法

什么是二分查找(6分钟)

二分查找实现思路(5分钟)

二分查找时间复杂度(5分钟)

二分查找代码实现(8分钟)

解决计算中间索引溢出的问题(8分钟)

二分查找的其他细节问题(6分钟)

递归实现二分查找(11分钟)

对降序数组进行二分查找(4分钟)
46
二分查找:二分查找的变形问题

查找第一个等于目标值的下标(6分钟)

查找第一个等于目标值的下标代码实现(7分钟)

查找第一个大于等于目标值的下标(6分钟)

查找第一个大于等于目标值下标代码实现(7分钟)

查找最后一个等于目标值的下标(6分钟)

查找最后一个小于等于目标值的下标(6分钟)
47
二分查找:应用--如何快速定位 IP 对应的省份

如何快速定位 ip 所属城市问题描述(4分钟)

如何快速定位 ip 所属城市二分查找思路(7分钟)

IP 地址数据预处理(8分钟)

二分查找实现快速定位 ip(7分钟)

二分查找实现快速定位 ip 代码说明(5分钟)
48
lc 704 :二分查找

【习题】lc 704 :二分查找(1道)

最基本的二分查找算法实现(4分钟)

二分查找的两种思路(7分钟)

二分查找第二种思路代码实现(8分钟)

二分查找第二种思路第二种代码实现(6分钟)

二分查找思路二的另一种代码实现(5分钟)
49
lc 34 :排序数组中找元素的第一个和最后一个位置

【习题】lc 34:排序数组中找第一和最后一(1道)

总体流程代码实现(8分钟)

二分查找思路一代码实现(8分钟)

二分查找思路二代码实现(10分钟)
50
lc 35:搜索插入位置

【习题】lc 35 :搜索插入位置(1道)

解题思路(5分钟)

二分查找思路一代码实现(10分钟)

二分查找思路二代码实现(7分钟)
51
lc 33 :搜索旋转排序数组

【习题】lc 33 :搜索旋转排序数组(1道)

什么是旋转排序数组(2分钟)

二分查找思路(7分钟)

二分查找代码实现(7分钟)
52
剑指  11:旋转排序数组的最小数字

【习题】剑指11:旋转排序数组的最小数字(1道)

什么是旋转排序数组(2分钟)

暴力遍历提前退出优化(3分钟)

二分查找求解(5分钟)

含有重复元素的二分查找(10分钟)
53
lc 852 :山脉数组的峰顶索引

【习题】lc 852 :山脉数组的峰顶索引(1道)

线性扫描解法(5分钟)

二分查找实现步骤(6分钟)

二分查找代码实现(3分钟)
54
lc 1095 :山脉数组中查找目标值

【习题】lc 1095 :山脉数组中查找目标值(1道)

二分查找代码实现(9分钟)
55
链表相关算法:基础知识

节点类的代码实现(6分钟)

数组转成链表(7分钟)

计算链表节点个数(6分钟)

计算链表等于目标值的节点个数(3分钟)
56
lc 203 :移除链表元素

【习题】lc 203 :移除链表元素(1道)

删除表头节点(7分钟)

删除非表头节点(7分钟)

虚拟节点统一删除逻辑(6分钟)
57
lc 206 :反转链表

【习题】lc 206 :反转链表(1道)

迭代解法(7分钟)

为什么可以使用递归实现(4分钟)

递归实现(7分钟)
58
lc 876 :链表的中间节点

【习题】lc 876 :链表的中间节点(1道)

两遍扫描法(7分钟)

快慢指针解法(7分钟)
59
lc 19 :删除链表的倒数第N个节点

【习题】lc 19 :删除链表的倒数第N个节点(1道)

基本解法(8分钟)

快慢指针解法(6分钟)
60
lc 21 :合并两个有序链表

【习题】leetcode 21 号算法题:合并两个有序链表(1道)

迭代解法(6分钟)

迭代解法代码实现(5分钟)

递归解法(7分钟)

递归解法代码实现(4分钟)
61
lc 23 :合并K个升序链表

【习题】lc 23 :合并K个升序链表(1道)

顺序合并(4分钟)

分治解法(7分钟)
62
lc 147 :对链表进行插入排序

【习题】lc 147 :对链表进行插入排序(1道)

题目解释(4分钟)

插入排序的详细步骤(8分钟)

插入排序代码实现(5分钟)
63
lc 148 :排序链表

【习题】lc 148 :排序链表(1道)

归并排序算法步骤(6分钟)

归并排序递归实现(5分钟)

归并排序(自底朝上)步骤(8分钟)

链表切割(6分钟)

切割合并控制流程(8分钟)

补充(2分钟)

链表合并逻辑(6分钟)

链表合并代码实现(5分钟)
相关推荐
客服 关于