python数据结构与算法学习路线

努力打工,争取每天3个
更新进度:■■■■■■■■■■□□□□□□□□□□|50%
目前在更新:排序算法
剑指offer链接:点击跳转
leetcode题目分类:点击跳转
学习内容:

  • 基本算法:枚举、排序、搜索、递归、分治、优先搜索、贪心、双指针、动态规划等…
  • 数据结构:字符串(string)、列表(list)、元组(tuple)、字典(dictionary)、集合(set)、数组、队列、栈、树、图、堆等…

目录

  • 1. 思维导图
  • 2. 数据结构:
    • 2.1 python五大数据类型
    • 2.2 python实现树
    • 2.3 python实现图
    • 2.4 python实现栈
    • 2.5 python实现哈希
    • 2.6 python实现链表
    • 2.7 python实现队列
  • 3. 基本算法:
    • 3.1 排序算法:
    • 3.2 贪心算法:
    • 3.3 动态规划:
    • 3.4 指针类问题
    • 3.5 优先搜索
    • 3.6 回溯
    • 3.7 分治
  • 参考文章:

1. 思维导图

​​​​​python数据结构与算法学习路线_第1张图片
python数据结构与算法学习路线_第2张图片

2. 数据结构:

2.1 python五大数据类型

基础知识:python五大数据类型
练习:

  1. 数组:
题目分类 题目标号
数组的遍历 485. 最大连续1个数(简单)
495. 提莫攻击(中等)
414. 第三大的数(简单)
628. 三个数的最大乘积(简单)
统计数组中的元素 645. 错误的集合(简单)
697. 数组的度(简单)
448. 找到所有数组中消失的数字(简单)
442. 数组中重复的数据(中等)
41. 缺失的第一个正数(困难)
274
数组的改变、移动 453. 最小操作次数使数组元素相等(简单)
665. 非递减数列(简单)
283. 移动零
二维数组及滚动数组 118. 杨辉三角(简单)
119. 杨辉三角 II(简单)
661. 图片平滑器(简单)
598
419
数组的旋转 189. 旋转数组(中等)
396. 旋转函数(中等)
特定顺序遍历二维数组 54
59
498
二维数组变换 566. 重塑矩阵(简单)
48
73
289
前缀和数组 303
304
238
  1. 字符串
题目分类 题目标号
字符 520. 检测大写字母(简单)
回文串的定义 125. 验证回文串(简单)
公共前缀 14
单词 434、58
字符串的反转 344. 反转字符串
541
557
151
字符的统计 387
389
383
242
49
451
423
657
551
696
467
535
数字与字符串间转换 299、412、506、539、553、537、592、640、38、443、8、13、12、273、165、481
子序列 392、524、521、522
高精度运算 66、67、415、43、306
字符串变换 482. 密钥格式化(简单)
6. Z 字形变换(中等)
68
字符串匹配 28
686
459
214
中心拓展法 5
647
  1. 位运算
题目分类 题目标号
数字位操作 7. 整数反转
9. 回文数
479
564
231. 2的幂
342. 4的幂 326. 3的幂
504
263
190
191
476
461
477
693
393
172
458
258
319
405
171
168
670
233
357
400
简单数学题 492
29
507
快速幂 50,372

2.2 python实现树

基础知识:点击跳转
练习:

题目分类 题目标号
树的递归 100.相同的树(简单)
222.完全二叉树的节点个数(中等)
101.对称二叉树(简单)
226.翻转二叉树(简单)
437.路径总和 III(中等)
563
617
508
572
543
654
687
87
树的层次遍历 102
429
690
559
662
671
513
515
637
103
107
257
623
653
104
111
112
112
129
404
199
655
116
117
树的前序遍历 144
589
树的前序例化 606
331
652
297
449
树的后序遍历 145
590
树的中序遍历与二叉搜索树 94
700
530
538
230
98
173
669
450
110
95
108
109
重构二叉树 105
106
二叉树的展开 114
最近公共祖先 235
236
Morris中序遍历 501
99
四叉树 558
427

Leetcode 104 110 543

2.3 python实现图

2.4 python实现栈

练习:Leetcode 20

2.5 python实现哈希

练习:Leetcode 1 128

2.6 python实现链表

python数据结构之链表(linked list)

2.7 python实现队列

练习:
Leetcode 21 23
Leetcode 2

3. 基本算法:

3.1 排序算法:

基础知识:点击跳转
练习:
Leetcode 排序+双指针-15
Leetcode 排序+双指针-16
147. 对链表进行插入排序(中等)
148

3.2 贪心算法:

基础知识:分治法、动态规划、贪心算法区别
练习:
Leetcode 14-分配问题
Leetcode 435-区间问题
Leetcode 135-分配问题
Leetcode 605-分配问题
Leetcode 455-分配问题

3.3 动态规划:

基础知识:点击跳转
练习:
斐波那契数列:
70. 爬楼梯(简单)
198. 强盗抢劫(简单)
213. 强盗在环形街区抢劫(中等)

矩阵路径:
64. 矩阵的最小路径和(中等)
62. 矩阵的总路径数(中等)

数组区间:
303. 数组区间和(简单)
413. 数组中等差递增子区间的个数(中等)

分割整数:
343. 分割整数的最大乘积(中等)
279. 按平方数来分割整数(中等)
91. 分割整数构成字母字符串(中等)

最长递增子序列:
300. 最长递增子序列(中等)
646. 一组整数对能够构成的最长链(中等)
376. 最长摆动子序列(中等)

最长公共子序列:
1143. 最长公共子序列(中等)

背包问题:
139. 字符串按单词列表分割(中等)
416. 划分数组为和相等的两部分(中等)
494. 改变一组数的正负号使得它们的和为一给定数(中等)
474. 01 字符构成最多的字符串
322. 找零钱的最少硬币数
518. 找零钱的硬币数组合
377. 组合总和

股票交易:
309. 需要冷却期的股票交易
714. 需要交易费用的股票交易
123. 只能进行两次的股票交易
188. 只能进行 k 次的股票交易

字符串编辑:
583. 删除两个字符串的字符使它们相等(中等)
72. 编辑距离(中等)
650. 复制粘贴字符(中等)
Leetcode 5
Leetcode 121
Leetcode 53

3.4 指针类问题

基础知识:
练习:

3.5 优先搜索

基础知识:
深度搜索 广度搜索
练习:

3.6 回溯

基础知识:点击跳转
练习:

3.7 分治

基础知识:
练习:

参考文章:

学习流程
leetcode刷题笔记

你可能感兴趣的:(python,python,数据结构,算法,人工智能)