数据结构与算法(LeetCode高频300题 Python3实现)

未来一个月内会补充完下列代码

1、课程:Introduction

1、课程介绍
2、职业规划及面试简介
3、算法及语言方面的要求
4、数据结构及算法介绍
5、找到丢失的数字
6、找到商城中前K个最常被搜索的商品
7、算法分析
8、理论分析
9、近似记法(一)
10、近似记法(二)
11、P与NP,主项定理(一)
12、主项定理(二)
13、Array(数组)
14、Array(数组)应用—洗牌(一)
15、Array(数组)应用—洗牌(二)
16、Array(数组)应用—计算质数
17、Array(数组)应用—证明哥德巴赫猜想

2、课程:数组和动态数组

1、概览、动态数组介绍
2、抽象数据类型列表的操作
3、操作详述(一)
4、操作详述(二)
5、练习1—扫雷
6、练习2—矩阵0变换
7、练习3—九宫图
8、练习4—验证数独
9、练习5—旋转数组
10、练习6—反转字符串
11、练习7—最长连续子串
12、练习8—最大数
13、Find All Numbers Disappeared in an Array
14、练习10—Plus One

3、课程:递归

1、递归VS迭代
2、练习2—阶乘
3、练习3—斐波那契数列
4、练习4—打印尺子
5、练习5—数字表达式
6、练习6—汉诺塔问题
7、练习7—格雷码
8、练习—Subest
9、Backtracking回溯(一)
10、Backtracking回溯(二)
11、练习—Subset II和Permutation
12、练习—Permutation Unique和Permutation of Size K
13、练习—Combination Sum和Combination Sum II
14、练习—Parentheses

4、课程:搜索与排序

1、搜索(一)
2、搜索(二)
3、搜索(三)
4、冒泡排序(一)
5、冒泡排序(二)
6、选择排序
7、插入排序
8、希尔排序
9、计数排序
10、归并排序
11、分治排序
12、快速排序
13、改进

5、课程:二分搜索

1、课堂回顾
2、经典二分搜索法
3、模板练习
4、练习之在旋转有序数列中查找最小值
5、练习之在旋转数组中查找一个数
6、练习之搜索一个区间范围
7、练习之供暖设备
8、练习之矩阵搜索(一)
9、练习之矩阵搜索(二)
10、练习之合并区间

6、课程:分治法(上)

1、复习总结
2、练习之快速指数(一)
3、练习之快速指数(二)
4、练习之搜索峰值
5、练习之查找中值、查找第K个元素
6、练习之两数组交集(一)
7、练习之两数组交集(二)
8、加和值最多啊的子序列问题(一)
9、加和值最多啊的子序列问题(二)
10、练习之VLSI芯片测试

7、课程:分治法(下)

1、算法学习之刷题
2、练习之快速整数乘法
3、练习之对于多项式乘法的快速傅里叶变换
4、练习之矩阵乘法
5、练习之水槽问题(一)
6、练习之水槽问题(二)
7、练习之用最少步数收集所有硬币
8、练习之拼接问题

8、课程:链表(上)

1、导语
2、课程介绍
3、基本思路
4、更多
5、抽象数据类型(ADT)列表操作(一)
6、抽象数据类型(ADT)列表操作(二)
7、练习—删除链表中的节点
8、练习—找到中间节点
9、练习—是否有环
10、练习—环的开始(一)
11、练习—环的开始(二)
12、练习—删除倒数第N个节点和分半
13、总结

9、课程:链表(下)

1、课程回顾及本节课的介绍
2、练习—合并两个排好序的链表(一)
3、练习—合并两个排好序的链表(二)
4、练习—Intersection of Two Linked Lists
5、练习—Insertion Sort List
6、练习—Sort List
7、测试分享
8、练习—Partition List
9、练习—Reverse a Linked List
10、练习—Reverse a Linked List II
11、练习—Reverse a Linked List III和Reverse a Linked List IV
12、练习—Palindrome Linked List
13、练习—Remove Duplicates from Sorted List

10、课程:堆栈和队列(上)

1、导语
2、堆栈的基本思想(一)
3、堆栈的基本思想(二)
4、堆栈的基本思想(三)
5、队列基本思想(一)
6、队列基本思想(二)
7、队列基本思想(三)
8、练习—Implement Queue using Stacks
9、练习—Implement Stack using Queues
10、练习—Min stack(一)
11、练习—Min stack(二)
12、练习—Two Stack with One Array和Three Stack with One Array
13、Stack Sorting

11、课程:堆栈和队列(下)

1、课前导语
2、练习—Reverse a String和Palindrome
3、练习—Valid Parentheses
4、练习—Simplify Path
5、练习—Decode String(一)
6、练习—Decode String(二)
7、练习—Basketball Game
8、练习—Asteroid Collision
9、练习—Next Greater Element(一)
10、练习—Next Greater Element(二)
11、练习—Next Greater Element II
12、练习—Daily Temperatures
13、练习—Sliding Window Max讲前介绍

12、课程:哈希表(上)

1、导语
2、哈希表基本介绍
3、魔法盒
4、哈希方法和哈希值
5、自定义可哈希对象
6、冲突
7、解决方案—开放地址(一)
8、解决方案—开放地址(二)
9、解决方案—独立链表
10、再次哈希
11、Python里的哈希相关模块
12、完成自己的哈希程序
13、动手写自定义可哈希对象

13、课程:哈希表(下)

1、课前介绍
2、练习—Letter Count
3、练习—Word Count和First Unique Character in a String
4、练习—Intersection of Two Arrays I和II
5、练习—Jewels and Stones
6、练习—Contains Duplicates I和II
7、练习—Subdomain Visit Count
8、练习—Keyboard Row
9、练习—Word Pattern
10、作业讲解
11、Least Recent Unit(一)
12、Least Recent Unit(二)

14、课程:树(上)

1、树的基本介绍
2、树的ADT
3、先序遍历和后序遍历
4、二叉树及二叉树ADT
5、打印和评估算术表达式
6、二进制搜索树
7、BST—二叉搜索树(一)
8、BST—二叉搜索树(二)
9、BST—二叉搜索树(三)
10、最小值与最大值(一)
11、最小值与最大值(二)
12、AVL树和树旋转
13、练习

15、课程:树(下)

1、课程回顾
2、练习—判断树是否为平衡树?
3、练习—Floor and Ceiling
4、练习—Is Binary Search Tree
5、练习—Is Mirror Tree和Same Tree
6、练习—Is Tree Foldable
7、练习—Iterative Get和Iterative Add
8、练习—Iterative Inorder Traversal
9、练习—Iterative Preorder Traversal
10、练习—Iterative Postorder Traversal
11、练习—Level Order Traversal和练习- Level Order Traversal II
12、练习—Binary Tree Zigzag Level Order Traversal
13、练习—Construct Binary Tree from Preorder and Inorder Traversal
14、练习—Convert Sorted Array to Binary Search Tree
15、练习—Convert Sorted List to Binary Search Tree
16、练习—Path Sum(求和)
17、练习—Path Sum II和练习-Path Sum III
18、练习—First Common Ancestor for Binary Search Tree

16、课程:堆(上)

1、集合回顾和堆的应用
2、完全二叉树和对的特性
3、如何构造堆(一)
4、如何构造堆(二)
5、如何构造堆(三)
6、Python Heap(一)
7、Python Heap(二)

17、课程:堆(下)

1、课程回顾
2、练习—数组中第K个最大的元素
3、练习—前K个最高频的词汇
4、练习—丑数Ugly Number
5、练习—找到加和值最小的K对数
6、练习—合并K个有序列表
7、练习—从数据流中找到中位数(一)
8、练习—从数据流中找到中位数(二)
9、练习—管理你的项目(IPO)
10、总结
11、思考题

18、课程:图论(一)

1、课前回顾
2、图形术语、图形问题
3、邻接矩阵图表示法(一)
4、邻接矩阵图表示法(二)
5、邻接矩阵图表示法(三)
6、邻接列表图表示法(一)
7、邻接列表图表示法(二)
8、DFS(深度优先搜索)算法(一)
9、DFS(深度优先搜索)算法(二)
10、DFS(深度优先搜索)算法(三)
11、BFS(广度优先搜索)算法
12、性能

19、课程:图论(二)

1、课程回顾(一)
2、课程回顾(二)
3、连通图
4、最短路径
5、Dijkstra’s算法(一)
6、Dijkstra’s算法(二)
7、Dijkstra’s算法(三)
8、Dijkstra’s挑战、Bellman—Ford算法
9、Bellman—Ford算法、负循环应用
10、Dijkstra局限性、A*算法
11、作业讲解(一)
12、作业讲解(二)

20、课程:图论(三)

1、课前回顾和答疑
2、练习—迷宫(一)
3、练习—迷宫(二)
4、练习—迷宫(三)
5、练习—迷宫(四)
6、练习—迷宫(五)
7、练习—Flood Fill
8、练习—Friend Circles
9、练习—Number of Islands
10、练习—Max Area of lsland
11、练习—Employee Importance(一)
12、练习—Employee Importance(二)

21、课程:图论(四)

1、练习—Is Graph Bipartite?(一)
2、练习—Is Graph Bipartite?(二)
3、练习—Pacific Atlantic Water Flow(一)
4、练习—Pacific Atlantic Water Flow(二)
5、练习—Longest Increasing Path in a Matrix
6、练习—01 Matrix(一)
7、练习—01 Matrix(二)
8、练习—Accounts Merge(一)
9、练习—Accounts Merge(二)
10、练习—Word Ladder
11、练习—Word Ladder II及作业讲解
12、练习—TopologySort(一)
13、练习—TopologySort(二)

22、课程:双指针

1、课前回顾和答疑
2、反转列表、两数求和、三数求和
3、四数求和
4、合并两个有序数组
5、两有序数组的最小元素差、两有序数组的交集
6、连续子串的最大值
7、寻找主元素(一)
8、寻找主元素(二)
9、颜色排序
10、寻找K个最近元素
11、容纳最多的水
12、总结

23、课程:滑动窗口

1、从排序数组中删除重复数(一)
2、从排序数组中删除重复数(二)
3、删除元素
4、最大均值子数组
5、最长连续递增子序列
6、最短子数组之和
7、实现strStr()函数
8、子数组乘积小于K
9、不含重复字符的最长子串(一)
10、不含重复字符的最长子串(二)
11、最小窗口子串(一)
12、最小窗口子串(二)
13、滑动窗口最大值(一)
14、滑动窗口最大值(二)

24、课程:动态规划(上)

1、动态规划简介(一)
2、动态规划简介(二)
3、一维动态规划
4、入室抢劫(一)
5、入室抢劫(二)
6、入室抢劫(三)
7、组织聚会
8、瓷砖问题
9、最小台阶问题
10、解码方式
11、独特二叉树搜索路径
12、独特二叉树搜索路径、最大子序列乘积

25、课程:动态规划(中)

1、课前回顾
2、买卖股票(一)
3、买卖股票(二)
4、买卖股票(三)
5、买卖股票(四)
6、买卖股票(五)
7、买卖股票(六)
8、买卖股票(七)
9、买卖股票(八)
10、独特路径(一)
11、独特路径(二)
12、在棋盘上移动
13、最大正方形(一)
14、最大正方形(二)

26、课程:动态规划(下)

1、课前回顾
2、0/1背包问题(一)
3、0/1背包问题(二)
4、0/1背包问题(三)
5、0/1背包问题(四)
6、最大公共子序列(一)
7、最大公共子序列(二)
8、最大递增子序列(一)
9、最大递增子序列(二)
10、最大递增子序列(三)
11、矩阵链(一)
12、矩阵链(二)

27、课程:贪心算法

1、课前回顾
2、贪心算法介绍
3、找硬币
4、活动问题
5、最小的数字问题
6、两个数字的最小和
7、以最低的成本连接绳索
8、最小平台数
9、部分背包问题、分蛋糕
10、将板子切割成正方形的最小成本
11、字典中最小的数组

28、课程:位操作

1、课前答疑
2、逃脱游戏
3、位操作介绍(一)
4、位操作介绍(二)
5、Set Bit,Clear Bit
6、Toggle Bit,Test Bit
7、将整数转换为Bits(二进制)、将Bits(二进制)转换为整数
8、用Bits展示小数、将HEX转换为整数、将整数转换为HEX
9、计算一个整数(二进制表示)包含的1的个数
10、下一个2的幂数、计算一个整数的符号
11、不使用分支计算一个整数的绝对值
12、就地(in-place)整数交换、将整数A转换为整数B
13、不使用算术运算符进行添加

29、课程:字符串

1、字符串所用技巧、字符串题型
2、偶数子串的数量、学生出勤记录
3、对具有相同首尾字符的子字符进行计数
4、同字母异序词、查找字符串中的所有相同字母异序词
5、查找同字母异序词的映射
6、移位
7、回文数、移位回文
8、重排回文、最长回文
9、最长子序列、检查子序列
10、找出所有子列元素之和的加和

30、课程:总结

1、硬币游戏、strstr
2、Strstr
3、回文流判定、数出“1(0+)1”模式的发生次数
4、与通配符匹配的字符串(一)
5、与通配符匹配的字符串(二)
6、总结—数据结构(一)
7、总结—数据结构(二)
8、总结—图论、数组、算法
9、继续学习
10、如何学习数据结构和算法
11、如何面试
12、软实力、热门话题

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值