一轮刷题汇总(持续更新...)

0、基本数据结构练习

0-1、栈

题目我的做法
-牛客网、括号序列

0-2、二叉树

题目我的做法
-牛客网、二叉树的之字形层级遍历(如何控制每一层的遍历)

1.递归思维

1.1、链表

题目我的做法
92.反转部分链表反转链表II(一次马大哈行为,谨记)
25.K个一组反转链表K个一组反转链表
234.回文链表回文链表——(多方法实现)
22、删除单链表的倒数第n个节点LeetCode22、删除单链表的倒数第n个节点
-牛客网、设计LRU缓存结构

1.2、二叉树(递归、序列化、BST思维)

递归思维

题目我的做法
226、翻转二叉树反转链表
114、二叉树展开为链表二叉树展开为链表
116、填充每个节点的下一个右侧节点填充每个节点的下一个右侧节点
105、从前序与中序序列遍历构建二叉树从前序与中序序列遍历构建二叉树
106、从中序与后序序列遍历构建二叉树从中序与后序序列遍历构建二叉树
计算二叉树的节点数计算完全二叉树的节点数(优化)
236、二叉树的最近公共祖先LeetCode236、二叉树的最近公共祖先(递归灵魂三问)
10、正则表达式匹配LeetCode10、正则表达式匹配(注意防止下标越位的问题)

递归思维+二叉树序列化表示

题目我的做法
LeetCode652、寻找重复的子树LeetCode652、寻找重复的子树
297. 二叉树的序列化与反序列化LeetCode297、二叉树的序列化与反序列化

BST树——BST思维

题目我的做法
LeetCode230、寻找第K小元素LeetCode230、寻找第K小的元素(BST的算法思维)
538、1038、把二叉搜索树转换为累加树LeetCode538和1038、把二叉搜索树转换为累加树(BST思维)

多叉树以及——题目不让做什么,我们就做什么,抓住题目提示

题目我的做法
341、扁平化嵌套列表迭代器LeetCode341、扁平化嵌套列表迭代器

二叉树的遍历(4种遍历,递归+迭代,将递归栈化为迭代栈的过程)

题目我的做法
94、二叉树的中序遍历LeetCode94、二叉树的中序遍历
144、二叉树的前序遍历LeetCode144、二叉树的前序遍历
145、二叉树的后序遍历LeetCode145、二叉树的后序遍历(自底向上地思考)

2、动态规划(如何从浅入深的思考)

2.1、字符串和子序列的动态规划(排序、dp定义、实例递推、区间动态规划)

题目我的做法
72、编辑距离LeetCode72、编辑距离(动态规划系列)
300、最长递增子序LeetCode300、最长递增子序
354、俄罗斯套娃信封问题LeetCode354、俄罗斯套娃信封问题
53、最大子序和LeetCode53、最大子序和
1143、最长公共子序列LeetCode1143、最长公共子序列
583、两个字符串的删除操作LeetCode583、两个字符串的删除操作
712、两个字符串的最小ASCII删除和LeetCode712、两个字符串的最小ASCII删除和
10、正则表达式匹配LeetCode10、正则表达式匹配(注意防止下标越位的问题)
* LintCode867、四键键盘问题LintCode867、四键键盘问题(dp数组的定义)
* Leetcode650、只有两个键盘的键盘LeetCode650、只有两个键的键盘(数学、因子、dp)

2.2、背包类型动态规划

题目我的做法
416、分割等和子集LeetCode416、分割等和子集(转为0-1背包问题)
518、零钱兑换问题IILeetCode518、零钱兑换II(完全背包问题)

2.3、区间动态规划

题目我的做法
LeetCode887、鸡蛋掉落LeetCode887、鸡蛋掉落(难)
Leetcode312、戳气球Leetcode312、戳气球(难)
LeetCode1312、让字符串成为回文串的最少操作次数LeetCode1312、让字符串成为回文串的最少操作次数(区间动态规划方法)

2.4、贪心选择(区间调度)

题目我的做法
435、无重叠区间LeetCode435、无重叠区间(贪心选择区间调度)
452、用最少数量的箭引爆气球LeetCode452、用最少数量的箭引爆气球(贪心选择区间调度)
55、跳跃游戏LeetCode55、跳跃游戏(dp或者贪心)
45. 跳跃游戏 IILeetCode45、跳跃游戏II(动态规划无法通过)

2.5、系列dp问题总结

LeetCode买卖股票系列总结(动态规划或者递归、进阶状态机)

LeetCode打家劫舍系列(经典动态规划系列问题)

3、二分查找

3.1、数组

题目我的做法
7.14、最小K个数LeetCode面试题17.14、最小K个数
-牛客网、缺失数字
-牛客网、数组中相加和为0的三元组
-牛客网、最长递增子序列(要输出具体的序列)

4、双指针

4.1、数组(左右指针)

题目我的做法
42、接雨水LeetCode42、接雨水(思考方向)
-牛客网、数组中相加和为0的三元组

4.2、链表(快慢指针)

题目我的做法
141、判断链表是否有环LeetCode141、判断链表是否有环(注意不一定在头节点回环)
22、删除单链表的倒数第n个节点LeetCode22、删除单链表的倒数第n个节点
61、旋转链表LeetCode61、旋转链表(递归、数学)

4.3、其他

题目我的做法
-牛客网、找到字符串的最长无重复字符子串

5、其他

题目我的做法
-牛客网、合并区间
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

雨夜※繁华

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

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

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

打赏作者

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

抵扣说明:

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

余额充值