努力打工,争取每天3个
更新进度:■■■■■■■■■■□□□□□□□□□□|50%
目前在更新:排序算法
剑指offer链接:点击跳转
leetcode题目分类:点击跳转
学习内容:
- 基本算法:枚举、排序、搜索、递归、分治、优先搜索、贪心、双指针、动态规划等…
- 数据结构:字符串(string)、列表(list)、元组(tuple)、字典(dictionary)、集合(set)、数组、队列、栈、树、图、堆等…
目录
1. 思维导图
2. 数据结构:
2.1 python五大数据类型
基础知识:python五大数据类型
练习:
- 数组:
题目分类 | 题目标号 |
---|---|
数组的遍历 | 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 |
- 字符串
题目分类 | 题目标号 |
---|---|
字符 | 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 |
- 位运算
题目分类 | 题目标号 |
---|---|
数字位操作 | 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 |
2.3 python实现图
2.4 python实现栈
练习:Leetcode 20
2.5 python实现哈希
2.6 python实现链表
2.7 python实现队列
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 分治
基础知识:
练习: