首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
算法
喜欢小钱钱
创建于2023-11-04
订阅专栏
小菜鸡平时刷题的一些笔记
暂无订阅
共46篇文章
创建于2023-11-04
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
codeTop100题(22)92. 反转链表 II
1. 题目 92. 反转链表 II 2. 分析 之前也有一个类似的反转链表的题目,只不过那个是k个一组,可能有多组需要反转: https://juejin.cn/post/73315534911499
codeTop100题(21)103. 二叉树的锯齿形层序遍历
1. 题目 103. 二叉树的锯齿形层序遍历 2. 分析 之前做过一道题目,二叉树的层序遍历,唯一的区别是本题要求我们将偶数层的遍历反过来。 二叉树层序遍历 那么我们最后add到lists里的时候,把
codeTop100题(20)88. 合并两个有序数组
1. 题目 88. 合并两个有序数组 2. 分析 这类合并有序数组的题目,我们可以通过双指针的方式进行解决,类似 合并有序链表 但是题目中的一个数组已经预留了足够的空间给处理后的数组了,我们怎么保证最
codeTop100题(19)236. 二叉树的最近公共祖先
1. 题目 236. 二叉树的最近公共祖先 2. 分析 首先看到给出的TreeNode结构没有parent指针,所以我们需要从根节点开始遍历 祖先节点的条件是什么呢? 两个节点分别在当前节点的左右 或
codeTop100题(18)46. 全排列
1. 题目 46. 全排列 2. 分析 题目要求我们给出所有的排列方式,首先我们知道,如果是排列的那话,那么我们每一个数字都只能使用一次,如图的三个数字: 首先我们拿出1,剩下 2 和 3 1.1 再
codeTop100题(17)121. 买卖股票的最佳时机
1. 题目 121. 买卖股票的最佳时机 2. 分析 尝试一下动态规划是否可以解决: 确定dp数组含义,需要两个数组;a当天能得到的最大收益,b当天之前的最低价格 公式:a[i] = max(a[i-
codeTop100题(16)141. 环形链表
1. 题目 141. 环形链表 2. 分析 之前刚好写过一个这题的升级版,找到环的入口 找到环的入口 当我们需要找一个环是否存在的时候,我们可以通过快慢指针,当两者相遇则说明有环,否则没环 3. 代码
codeTop100题(15)20. 有效的括号
1. 题目 20. 有效的括号 2. 分析 这题相信大家在学习栈的数据结构的时候就知道这道题目了,通过左边的括号入栈,右边的括号和栈顶的括号进行匹配。 注意遍历字符串过程中,栈需要判断是否为空 注意遍
codeTop100题(14)200. 岛屿数量
1. 题目 200. 岛屿数量 2. 分析 首先我们画一个海洋的图 当我们发现grid[0][0]是一个陆地,我们计数,并把这个陆地构成的岛屿都标记上 随后我们继续遍历grid数组,遇到海洋和已经被使
codeTop100题(13)33. 搜索旋转排序数组
1. 题目 33. 搜索旋转排序数组 2. 分析 mid 等于target的时候,直接返回 mid 小于target的时候 mid 大于target的时候 3. 代码 4. 总结 本题卡最久的时候是确
codeTop100题(12)102. 二叉树的层序遍历
1. 原题 102. 二叉树的层序遍历 2. 分析 如果是直接要求从左到右遍历所有的节点,那么我们直接用一个队列进行存储就行了,但是现在要求返回每一层的节点。我们可以发现一个规律,当遍历完一层之后,此
codeTop100题(11)5. 最长回文子串
1. 题目 5. 最长回文子串 2. 分析 看到最长两个字,第一个想到的就是动态规划,然而动态规划需要确定dp数组的含义,以及递推公式。 再让我们回到题目,题目要求是找到最长的回文子串,首先是回文串的
codeTop100题(10)1. 两数之和
1. 题目 1. 两数之和 2. 分析 这题很简单,用一个hash表记录一下出现过的数,然后拿target减去当前数,看这个差是否在map中存在就行 3. 代码
codeTop100题(9)21. 合并两个有序链表
1. 题目 21. 合并两个有序链表 2. 分析 本题比较简单,可以使用双指针,过程如图所示: 初始化,定义a、b指针和返回的res ab相等,将res指向a当前节点,a后移 b小,将res指向b当前
codeTop100题(8)912. 排序数组
1. 题目 912. 排序数组 2. 分析 使用快排进行排序 确定左右边界 选中基准值 指针a指向左边界,从左边界开始找到每一个小于基准值的数字与指针a进行替换,同时指针a右移 指针a与基准值替换 左
codeTop100题(7)53. 最大子数组和
1. 题目 53. 最大子数组和 2. 分析 求最大,感觉可以用动态规划来做 定义dp数组含义:i位置的最长子数组的长度 递推公式 dp[i] = max(nums[i], dp[i-1]) 边界条件
codeTop100题(6)15. 三数之和
1. 题目 15. 三数之和 2. 分析 题目有两个要求: i!=j!=k 三元组不能重复 暴力的解法是连续三次遍历,为了达成第一个条件,我们需要遍历的时候控制i < j < k;为了达成第二个条件,
codeTop100题(5)25. K 个一组翻转链表
1. 题目 25. K 个一组翻转链表 2. 分析 之前我们做过一个反转链表,这里在满足两个的情况下,我们可以复用之前的反转链表能力。 反转链表 然后我们需要考虑,怎么才能做到,每k个反转一下,这里我
codeTop100题(4)215. 数组中的第K个最大元素
1. 原题 215. 数组中的第K个最大元素 2. 分析 题目要求我们找到数组中第k个最大的数,最简单的方案就是将数组排序,然后找到倒数第k个数,那么我们有如下几个方案 3. 答案 3.1 快排 直接
codeTop100题(3)146. LRU 缓存
1. 题目链接 146. LRU 缓存 2. 分析 LRU缓存我们可以通过Map + 双向链表来实现,数据结构如图所示: 调用get方法的时候,直接通过map可以o(1)时间复杂度拿到value 需要
下一页