数据结构与算法(leetcode)
文章平均质量分 81
以力扣题目和代码随想录为引,系统记录和总结数据结构与算法的相关知识(示例代码语言为Python)
日拱一卒的吾
这个作者很懒,什么都没留下…
展开
-
算法题思路总结
递归函数、降低时间复杂度的方法、固定规律处理某类数据时、相邻元素的处理、字符串类题目、栈和队列总结、二叉树类题目、回溯算法题目、贪心算法总结、动态规划总结原创 2024-01-31 21:21:52 · 455 阅读 · 0 评论 -
数组01 | 时间复杂度和空间复杂度、数组基础、704. 数组二分查找、27. 数组移除元素
时间复杂度和空间复杂度、数组基础、704. 二分查找(左右双指针、区间的开闭)、27.移除元素(左右双指针)原创 2024-01-10 22:32:59 · 422 阅读 · 0 评论 -
数组02 | *977.有序数组的平方 ,209.长度最小的子数组 ,*59.螺旋矩阵II
*977.有序数组的平方(双指针、排序算法) ,209.长度最小的子数组(滑动窗口法) ,59.螺旋矩阵II(边界条件判断、转圈的逻辑)原创 2024-01-25 22:41:52 · 887 阅读 · 0 评论 -
链表01 | 203.移除链表元素、707.设计链表、*206.反转链表
203.移除链表元素(虚拟头节点)、707.设计链表(虚拟头节点)、*206.反转链表(双指针法和递归函数)原创 2024-01-26 21:44:09 · 429 阅读 · 0 评论 -
链表02 | *24. 两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题 02.07. 链表相交、*142.环形链表II
*24. 两两交换链表中的节点(虚拟头节点、三节点交换)、19.删除链表的倒数第N个节点(双指针)、面试题 02.07. 链表相交(审题)、142.环形链表II(双指针、数学逻辑、暴力集合法)原创 2024-01-27 15:56:50 · 367 阅读 · 0 评论 -
哈希表01 | 242.有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和
242.有效的字母异位词(数组)、349. 两个数组的交集(数组/集合/字典)、202. 快乐数(数组/集合)、1. 两数之和(字典、利用差值代替求和降低时间复杂度)原创 2024-01-29 17:11:00 · 898 阅读 · 0 评论 -
哈希表02 | *454.四数相加II、383. 赎金信、*15. 三数之和、*18. 四数之和
*454.四数相加II(字典)、383. 赎金信(数组)、*15. 三数之和(去重、哈希法/双指针)、*18. 四数之和(去重、双指针)原创 2024-01-31 00:27:28 · 951 阅读 · 0 评论 -
字符串01 | ● 344.反转字符串 ● *541. 反转字符串II ● 卡码网:54.替换数字 ● 151.翻转字符串里的单词 ● 卡码网:55.右旋转字符串
● 344.反转字符串(双指针) ● *541. 反转字符串II(循环逻辑优化、字符串修改) ● 卡码网:54.替换数字(列表字符串转换、判断字符类型(为整数字符或字母字符)) ● 151.翻转字符串里的单词(字符串切片翻转、双指针) ● 卡码网:55.右旋转字符串(字符串切片)原创 2024-02-01 16:38:25 · 853 阅读 · 0 评论 -
字符串02 | ●28. 实现 strStr()(KMP) ●459.重复的子字符串 ●字符串总结 ●双指针回顾
●28. 实现 strStr()(KMP算法) ●459.重复的子字符串(KMP算法) ●字符串总结(双指针法、KMP) ●双指针回顾原创 2024-02-02 01:49:25 · 390 阅读 · 0 评论 -
栈与队列01 | ● 理论基础 ● 232.用栈实现队列 ● *225. 用队列实现栈
232.用栈实现队列(栈基本操作)● *225. 用队列实现栈(队列基本操作,deque双向队列类)原创 2024-02-04 18:12:55 · 333 阅读 · 0 评论 -
栈和队列02 | ● 20. 有效的括号 ● 1047. 删除字符串中的所有相邻重复项 ● 150. 逆波兰表达式求值
20. 有效的括号(栈) ● 1047. 删除字符串中的所有相邻重复项(栈或双指针) ● *150. 逆波兰表达式求值(后缀表达式和栈)原创 2024-02-04 23:10:25 · 332 阅读 · 0 评论 -
栈与队列03 | ● *239. 滑动窗口最大值 ● 347.前 K 个高频元素 ● 总结
239. 滑动窗口最大值(单调队列) ● 347.前 K 个高频元素(大小顶堆) ● 栈、队列总结原创 2024-02-05 22:29:07 · 450 阅读 · 0 评论 -
二叉树01 | ● 理论基础 ● *递归遍历 ● *迭代遍历
● 二叉树理论基础(常见类型、存储方式、遍历方式、代码定义) ● *递归遍历(二叉树深度优先遍历的递归函数实现) ● *迭代遍历(二叉树深度优先遍历的迭代法实现)原创 2024-02-07 00:21:35 · 847 阅读 · 0 评论 -
二叉树02 | ● *层序遍历(对应10道题) ● *226.翻转二叉树 ● *101.对称二叉树
● *层序遍历(对应10道题,广度优先遍历) ● *226.翻转二叉树(遍历+节点操作) ● *101.对称二叉树(遍历+左右子树对称判断)(queue不能作为循环的判断条件)原创 2024-02-07 22:06:26 · 422 阅读 · 0 评论 -
二叉树03 | ● 104.二叉树的最大深度 559.n叉树的最大深度 ● *111.二叉树的最小深度 ● *222.完全二叉树的节点个数
● 104.二叉树的最大深度(遍历) 559.n叉树的最大深度 ● *111.二叉树的最小深度(审题+遍历) ● *222.完全二叉树的节点个数(利用完全二叉树特性降低时间复杂度)原创 2024-02-18 00:16:14 · 344 阅读 · 0 评论 -
二叉树04 | ● *110.平衡二叉树 ● *257. 二叉树的所有路径 ● 404.左叶子之和
● *110.平衡二叉树(后序遍历+二叉树高度计算) ● *257. 二叉树的所有路径(遍历+回溯) ● 404.左叶子之和(前序遍历+审题)原创 2024-02-18 23:05:11 · 1089 阅读 · 0 评论 -
二叉树05 | ● 513.找树左下角的值 ● 112. 路径总和 ● *106.从中序与后序遍历序列构造二叉树 105.从前序与中序遍历序列构造二叉树
● 513.找树左下角的值(层序遍历) ● 112. 路径总和(递归+回溯) ● *106.从中序与后序遍历序列构造二叉树(递归) 105.从前序与中序遍历序列构造二叉树原创 2024-02-20 00:24:59 · 322 阅读 · 0 评论 -
二叉树06 | ● *654.最大二叉树 ● 617.合并二叉树 ● 700.二叉搜索树中的搜索 ● *98.验证二叉搜索树
● *654.最大二叉树(前序遍历+二叉树构造) ● 617.合并二叉树(前序遍历+二叉树构造) ● 700.二叉搜索树中的搜索(二叉搜索树的特性) ● *98.验证二叉搜索树(中序遍历+二叉搜索树的特性+双指针)原创 2024-02-21 00:54:45 · 1085 阅读 · 0 评论 -
二叉树07 | ● 530.二叉搜索树的最小绝对差 ● 501.二叉搜索树中的众数 ● *236. 二叉树的最近公共祖先
● 530.二叉搜索树的最小绝对差(二叉搜索树的性质+中序遍历) ● 501.二叉搜索树中的众数(二叉搜索树的性质) ● *236. 二叉树的最近公共祖先(从下向上处理——后序遍历)原创 2024-02-21 16:14:56 · 974 阅读 · 0 评论 -
二叉树08 | ● *235. 二叉搜索树的最近公共祖先 ● 701.二叉搜索树中的插入操作 ● *450.删除二叉搜索树中的节点
● *235. 二叉搜索树的最近公共祖先(二叉搜索树的特性+前序遍历) ● 701.二叉搜索树中的插入操作(二叉搜索树的特性) ● *450.删除二叉搜索树中的节点(删除节点的情况分析)原创 2024-02-21 20:58:41 · 329 阅读 · 0 评论 -
二叉树09 | ● 669. 修剪二叉搜索树 ● 108.将有序数组转换为二叉搜索树 ● *538.把二叉搜索树转换为累加树 ● 总结篇
● 669. 修剪二叉搜索树(修剪的具体细节) ● 108.将有序数组转换为二叉搜索树(构造二叉树——前序遍历) ● 538.把二叉搜索树转换为累加树(逆向思维、逆向中序遍历) ● 总结篇原创 2024-02-21 22:35:49 · 357 阅读 · 0 评论 -
回溯算法01 | ● 理论基础 ● *77. 组合
● 理论基础(回溯的应用场景、回溯的思维结构、回溯的编程模板) ● 77. 组合(回溯)原创 2024-02-22 23:01:57 · 885 阅读 · 0 评论 -
回溯算法02 | ● *216.组合总和III ● 17.电话号码的字母组合
● *216.组合总和III(回溯+剪枝) ● 17.电话号码的字母组合(回溯)原创 2024-02-23 00:02:33 · 368 阅读 · 0 评论 -
回溯算法03 | ●*39. 组合总和 ● *40.组合总和II ● *131.分割回文串
●*39. 组合总和(回溯+组合) ● 40.组合总和II(回溯+组合+去重) ● 131.分割回文串(回溯+分割)原创 2024-02-25 22:16:22 · 405 阅读 · 0 评论 -
回溯算法04 | ● 93.复原IP地址 ● *78.子集 ● 90.子集II
● 93.复原IP地址(回溯+分割) ● *78.子集(回溯+子集) ● 90.子集II(回溯+子集+去重)原创 2024-02-27 16:24:25 · 501 阅读 · 0 评论 -
回溯算法05 | *491.递增子序列 *46.全排列 47.全排列 II
*491.递增子序列(回溯+子集+去重) *46.全排列(回溯+排列) 47.全排列 II(回溯+排列+去重)原创 2024-02-27 22:08:58 · 414 阅读 · 0 评论 -
回溯算法06 | ● *332.重新安排行程 ● *51. N皇后 ● *37. 解数独 ● 总结
● *332.重新安排行程(图论的深度优先搜索用回溯来实现) ● *51. N皇后(回溯+棋盘问题) ● *37. 解数独(回溯+棋盘问题) ● 总结原创 2024-02-28 20:24:32 · 426 阅读 · 0 评论 -
贪心算法01 | ● 理论基础 ● 455.分发饼干 ● *376. 摆动序列 ● *53. 最大子序和
● 理论基础 ● 455.分发饼干 ● 376. 摆动序列 ● 53. 最大子序和原创 2024-02-28 22:06:21 · 333 阅读 · 0 评论 -
贪心算法02 | ● 122.买卖股票的最佳时机II ● 55. 跳跃游戏 ● *45.跳跃游戏II
● 122.买卖股票的最佳时机II ● 55. 跳跃游戏 ● *45.跳跃游戏II原创 2024-02-29 21:50:50 · 415 阅读 · 0 评论 -
贪心算法03 | ● 1005.K次取反后最大化的数组和 ● *134. 加油站 ● *135. 分发糖果
● 1005.K次取反后最大化的数组和 ● *134. 加油站 ● *135. 分发糖果(分而治之)原创 2024-03-01 16:03:22 · 396 阅读 · 0 评论 -
贪心算法04 | ● 860.柠檬水找零 ● *406.根据身高重建队列 ● *452. 用最少数量的箭引爆气球
● 860.柠檬水找零 ● *406.根据身高重建队列(分而治之) ● *452. 用最少数量的箭引爆气球(重叠区间的处理)原创 2024-03-03 21:38:05 · 346 阅读 · 0 评论 -
贪心算法05 | ● 435. 无重叠区间 ● *763.划分字母区间 ● *56. 合并区间
● 435. 无重叠区间 ● *763.划分字母区间(非贪心算法,思路比较难想) ● *56. 合并区间(重叠区间的合并)原创 2024-03-04 22:12:27 · 378 阅读 · 0 评论 -
贪心算法06 | ● *738.单调递增的数字 ● *968.监控二叉树 ● 总结
● *738.单调递增的数字 ● *968.监控二叉树(贪心算法+二叉树) ● 总结原创 2024-03-05 19:24:25 · 428 阅读 · 0 评论 -
动态规划01 | ● 理论基础 ● 509. 斐波那契数 ● *70. 爬楼梯 ● *746. 使用最小花费爬楼梯
● 理论基础 ● 509. 斐波那契数 ● *70. 爬楼梯(斐波那契数列) ● *746. 使用最小花费爬楼梯(斐波那契数列)原创 2024-03-06 11:39:50 · 598 阅读 · 0 评论 -
动态规划02 | ● 62.不同路径 ● *63. 不同路径 II
● *62.不同路径(二维动规) ● 63. 不同路径 II(二维动规+障碍物处理)原创 2024-03-07 22:29:09 · 447 阅读 · 0 评论 -
动态规划03 | ● *343. 整数拆分 ● *96.不同的二叉搜索树
● *343. 整数拆分 ● *96.不同的二叉搜索树原创 2024-03-08 16:58:48 · 374 阅读 · 0 评论 -
动态规划04 | ● 背包问题 ● 01背包 (二维数组解法和滚动数组解法) ● *416. 分割等和子集
● 背包问题 ● 01背包 ● 滚动数组 ● *416. 分割等和子集(01背包)原创 2024-03-09 17:28:55 · 400 阅读 · 0 评论 -
动态规划05 | ● *1049. 最后一块石头的重量 II ● *494. 目标和 ● *474.一和零
● *1049. 最后一块石头的重量 II(01背包) ● *494. 目标和(01背包) ● 474.一和零(01背包)原创 2024-03-11 22:19:57 · 360 阅读 · 0 评论 -
动态规划06 | ● 完全背包 ● *518. 零钱兑换 II ● 377. 组合总和 Ⅳ
● 完全背包 ● *518. 零钱兑换 II ● 377. 组合总和 Ⅳ原创 2024-03-12 17:30:52 · 1050 阅读 · 0 评论 -
动态规划07 | ● 70. 爬楼梯 (进阶) ● 322. 零钱兑换 ● 279.完全平方数
● 70. 爬楼梯 (进阶)(完全背包) ● 322. 零钱兑换 ● 279.完全平方数原创 2024-03-13 17:21:36 · 819 阅读 · 0 评论