九章算法-九章算法VIP小班 第58期|2023版|独家资源|高清完整

九章算法VIP小班 第58期
60天扎实掌握算法知识,小班授课,1v1辅导,更适合算法基础薄弱的同学

第一章【视频】为什么大神就能马上想出来这道题目的思路,我却想不到?——手把手带你通过题目中的关键词快速锁定答案

  • 用一道真题实例解析如何识别关键词并快速解题
  • 用一道真题全真模拟代码面试中的九个步骤
    • 理解问题
    • 提问
    • 复述问题
    • 初步想法
    • 实例分析
    • 写代码
    • 测试
    • 评判
    • 优化
  • 一维数组前缀和
  • 二维数组前缀和
  • 我为什么要上这门课程?——课程特色一览

第二章【互动】复杂度理论与双指针算法入门

  • 四个算法的复杂度维度
    a.时间复杂度
    b.空间复杂度
    c.编程复杂度
    d.思维复杂度
  • 时间复杂度是O(N)的算法有哪些
  • 三种双指针题型
    a.背向双指针
    b.同向双指针
    c.相向双指针
  • Reverse型相向型双指针
    a.三步翻转法-ReverseWordsinaSentence
    b.ValidPalindrome&&II
  • TwoSum型双指针经典题
    a.哈希表的做法
    b.排序+双指针的做法
    c.哈希表与双指针的比较

第三章【互动】时间复杂度低于线性的算法

  • 快速幂算法
    a.快速幂的两种实现
    b.同余模定理:加减乘
  • 辗转相除法
  • 分解质因数

第四章【视频】子数组问题

  • 隔板法——在不重叠子数组题型中的应用
    • 隔板是什么——元素隔板 vs 间隙隔板
    • 隔板法基本步骤
  • 滑动窗口——在固定长度子数组题型中的应用
    • 滑动窗口基本步骤
    • 如何处理窗口内的数据

第五章【互动】同向双指针(上)

  • 两数之和的变形题——两数之差
  • 万能同向双指针模版
    a.用模版解决全零⼦串
    b.用模版解决去重问题

第六章【互动】同向双指针(下)

  • 数组上的同向双指针
    a.滑动窗口求和
  • 字符串上的同向双指针
    a.K次替换后最长的重复字符子串

第七章【视频】非有序数组的排序算法

  • 计数排序(counting sort)—— 小学生喜欢用的排序算法
  • 快速排序(quick sort)——分区(partition)
  • 桶排序(bucket sort)的应用 —— campus bike问题
  • 归并排序的应用——逆序对问题

第八章【互动】必须熟练掌握的两个排序算法

1. 两个必须熟练掌握的排序算法
a.快速排序算法
b.归并排序算法
2. Quick Select快速选择算法

第九章【视频】有序数组常见题型详解

  • 二分查找
    • 在有序输入集合中的二分查找
    • 在无序输入集合中的二分查找
    • 在结果集合中的二分查找
  • 合并有序数组
  • 有序数组去重

第十章【互动】二分法

– 时间复杂度的分析技巧——T函数推导法
– 通过时间复杂度倒推算法的技巧
– 递归是什么,如何实现二分
– 什么是堆空间(HeapMemory),什么是栈空间(StackMemory)
– 什么是StackOverflow,如何造成的,如何避免

第十一章【互动】通用二分法模板

– 二分法的基本原理
– 通用模板
a.什么时候死循环
b.为什么能做到通用
– 使用二分法解决求第一个位置,求最后一个位置和求任意位置的二分问题
– 二分算法的判断条件

第十二章【视频】区间(intervals)题型解题技巧

  • 扫描线算法(sweep line)
  • 线段树(segment tree)
    • 线段树基本操作
    • 常见线段树应用(最大值,最小值,计数等)

第十三章【互动】区间问题高频题精讲

– Microsoft 高频题 —— 区间合并
– 会议室问题
– 会议室问题 II

第十四章【视频】矩阵(matrix)题型详解(上)

  • 子矩阵(sub matrix)
    • 矩阵前缀和(prefix sum)
    • 矩阵压缩(matrix compression)
  • 01矩阵(01 matrix)——含有联通块的矩阵
    • 宽度优先搜索(BFS)——统计联通块数量和面积
    • 并查集(Union Find)——进行联通块合并

第十五章【互动】从真题中练习bfs与并查集

– 矩阵中的bfs面试真题——湖面逃跑
– Amazon并查集真题——账户合并

第十六章【视频】矩阵(matrix)题型详解(下)

  • 字符矩阵(character matrix)
    • 深度优先搜索(DFS)——矩阵中寻找单词
  • 动态规划在矩阵中的应用
    • 滚动数组——矩阵型动态规划的空间优化

第十七章【互动】动态规划基础解题思路

– 动态规划的四要素
– 动态规划基础题练习

第十八章【互动】背包型动态规划入门

– 01背包
– 带价值的背包
– 多重背包

第十九章【视频】字符串(string)题型详解(上)

  • 回文串(palindrome)的三个特性和题型
    • 对称性
    • 最多有一个字母出现奇数次
    • 回文串的轴心
  • 字符串的排列(permutation)
  • 动态规划在字符串中的应用
    • 匹配型动态规划

第二十章【互动】最长回文串子串问题(LPS)精讲

– 暴力 O(N^3) 解法与 Coding Style
– 枚举中心线解法
– 动态规划解法

第二十一章【视频】字符串(string)题型详解(下)

  • 两个指针(two pointers)——在字符串匹配中的应用
  • DFS和BFS——在字符串词语接龙中的应用

第二十二章【互动】字符串问题扩展知识:哈希法

– 哈希表的基本原理
– 哈希法与KMP应该如何取舍
– Robin Karp 算法的实现

第二十三章【视频】链表(linkedList)和哈希(hash)

  • 链表常见题型详解
    • 增加节点
    • 删除节点
    • 交换节点
    • 寻找中点
    • 旋转列表
    • 翻转列表
    • 合并列表
    • 循环列表
  • 哈希
    • HashSet
    • HashTable

第二十四章【互动】链表问题题目详解

– 判断链表中是否有环
a.Follow up:链表中的环的起始点在哪?
– 使用常数级空间翻转链表
a.Follow up:如何翻转给定区间 [n, m] 的链表
– 轻松学会如何判断回文链表

第二十五章【视频】第二十五章【视频】栈(stack)

  • 单栈
  • 双栈
  • 使用栈解决嵌套类问题
  • 单调栈——单调递增栈 vs 单调递减栈
  • 用栈实现迭代器(iterator)

第二十六章【互动】单调队列 / 单调栈 问题选讲

– 使用双向队列实现单调队列
a.单调队列高频题——滑动窗口的最大值
– 单调栈问题:直方图的最大矩形覆盖

第二十七章【视频】队列和堆

  • 队列
    • 常规队列
    • 双端队列
    • 最大堆
    • 最小堆

第二十八章【互动】堆的基本原理

– PriorityQueue和堆的联系和区别
– 堆的基本原理
– 堆的基本操作SiftUp和SiftDown
– 堆的增删查改
– 堆的初始化Heapify
– 堆排序

第二十九章【视频】二叉树

  • 遍历二叉树——BFS vs DFS
  • 使用分治思想解决二叉树子树问题
  • 二叉查找树(binary search tree)
    • 构建
    • 修改
    • 查找
    • 删除
    • 遍历

第三十章【互动】数据结构设计问题

– 最小栈
– 最大栈
– 两个栈实现队列
– 两个队列实现栈

第三十一章【视频】图(Graph)

  • 有向图 vs 无向图
  • 加权图 vs 无权图
  • 图的遍历——BFS vs DFS
  • 拓扑排序(Topological Sort)——遍历有依赖关系的有向图

第三十二章【互动】组合类搜索的隐式图模型

– 组合类搜索的隐式图模型
– 组合类搜索的时间复杂度和适用条件
– 如何对搜索结果进行去重
a.选代表 vs 哈希表

第三十三章【互动】排列类搜索的隐式图模型

– 排列类搜索的隐式图模型
– 排列类搜索的时间复杂度和适用条件
– 通过排列类搜索看搜索与多重循环的区别
– 著名的NP问题:TSP问题(旅行商问题)

第三十四章【视频】数据流(Data Stream)

  • 解决实时数据流问题的常用技巧
  • 数据流的缓存(Cache)——LRU vs LFU

全网最全最新最专业的资源站
九章资源站 » 九章算法-九章算法VIP小班 第58期|2023版|独家资源|高清完整

发表回复

全网最全最新最专业的资源站

购买会员 联系客服