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

课程介绍

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

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


常用高层的数据结构是基于数组、链表、二叉树等基础数据结构实现的,属于中级篇的内容。

本课程讲解的常用数据结构包括:堆和优先队列、Set、Map 以及跳表等,我们通过动画 + 手写数据结构的方式,让你自己实现并能记住常用的高层数据结构。


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

课程大纲

01
引入堆和优先队列的问题

数据流中的最大元素问题描述(4分钟)

单链表解决问题(一)(4分钟)         暂无试看

单链表解决问题(二)(8分钟)

单链表解决问题(三)(5分钟)

单链表解决问题(四)(6分钟)

优先队列实现对比(5分钟)
02
二叉堆

什么是二叉堆(4分钟)

代码实现大顶堆(8分钟)

Sift Up 逻辑步骤(5分钟)

Sift Up 代码实现(7分钟)

Sift Up 代码实现优化(5分钟)

Sift Down 逻辑步骤(5分钟)

Sift Down 代码实现(11分钟)

Sift Down 代码实现优化(4分钟)

堆的测试(7分钟)
03
堆化操作

堆化 (heapify) 过程(7分钟)

堆化代码实现(6分钟)

堆化的时间复杂度(9分钟)

堆化时间性能对比(6分钟)

堆排序(6分钟)
04
优先队列

二叉堆实现 DataStream(6分钟)

二叉堆实现优先队列(5分钟)

Java 内置优先队列(5分钟)
05
lc 23:合并K个升序链表

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

优先队列实现(12分钟)

优先队列实现代码实现(9分钟)
06
lc 215:数组中的第K个最大元素

【习题】lc 215:数组中的第K个最大元素(1道)

排序解法(4分钟)

快排分区解法(9分钟)

快排分区代码实现(9分钟)

优先队列解决方案(7分钟)

优先队列方案代码实现(7分钟)

优先队列方案代码优化(10分钟)
07
lc  703:数据流中的第 K 大元素

【习题】lc 703:数据流中的第 K 大元素(1道)

题目描述(3分钟)

最小堆实现方案(5分钟)

最小堆方案代码实现(6分钟)
08
lc 295:数据流的中位数

【习题】lc 295:数据流的中位数(1道)

题目解释(4分钟)

堆实现方案(9分钟)

堆实现方案代码(7分钟)
09
Set 的实现

Set 的特点(6分钟)

Set 接口的定义(3分钟)

数组实现 Set(4分钟)

数组实现 Set 时间复杂度分析(6分钟)

链表实现(7分钟)

数组实现和链表实现性能对比(10分钟)

二叉查找树实现有序的 Set(6分钟)
10
哈希方法实现 Set

哈希方法提升 Set 性能(11分钟)

HashSet 的实现(7分钟)

HashSet 的扩容(4分钟)

哈希冲突问题(3分钟)
11
哈希冲突解决方案:开放寻址法

开放寻址法解决哈希冲突(5分钟)

开放寻址法代码实现 add(6分钟)

开放寻址法代码实现删除和查询操作(7分钟)
12
哈希冲突解决方案:链表法

链表法法解决哈希冲突(4分钟)

链表法 add 逻辑(5分钟)

链表法 remove 逻辑(5分钟)

链表法 contains 逻辑(2分钟)

链表法扩容逻辑实现(6分钟)

装载因子(10分钟)
13
Map 的实现

Map 的特点(3分钟)

抽象 Map 接口(5分钟)

链表实现 Map 的 add 方法(6分钟)

链表实现 Map 的 remove 方法(3分钟)

链表实现 Map 的 set 方法(3分钟)

链表实现 Map 的查找方法(3分钟)

二叉查找树实现 Map(12分钟)
14
HashMap 的实现

HashMap 实现(一)(6分钟)

HashMap 实现(二)(5分钟)

HashMap 实现(三)(6分钟)
15
Set 和 Map 的测试

bug 修复(4分钟)

Map 实现代码测试(11分钟)

三种 Map 实现的性能对比(7分钟)

Java 内置的 Set 和 Map(6分钟)
16
lc 349:两个数组的交集

【习题】lc 349:两个数组的交集(1道)

线性查找解法(7分钟)

二分查找解法(6分钟)

哈希查找解法(6分钟)

排序解法(10分钟)
17
lc 350:两个数组的交集II

【习题】lc 350:两个数组的交集II(1道)

计数法(5分钟)

计数法代码实现(8分钟)

排序解法(4分钟)
18
lc 1:两数之和

【习题】lc 1:两数之和(1道)

暴力解法(6分钟)

排序二分查找(6分钟)

哈希查找(7分钟)

哈希查找代码优化(4分钟)
19
两数之和变形算法题一:输入有序数组

排序双指针(6分钟)
20
什么是跳表

什么是跳表(10分钟)

跳表的时间和空间复杂度(7分钟)
21
跳表的实现

跳表节点类实现(6分钟)

跳表节点下一个节点的含义解释(7分钟)

跳表的两个属性(3分钟)

跳表的查询操作(9分钟)

跳表的插入逻辑(4分钟)

跳表插入时维护索引节点(8分钟)

随机计算维护索引层数(6分钟)

跳表删除实现(7分钟)

跳表的使用场景(5分钟)
相关推荐
客服 关于