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

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

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

1. 思维导图

​​​​​在这里插入图片描述
在这里插入图片描述

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刷题笔记

  • 8
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浪里摸鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值