首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
LeetCode Hot 100
vim怎么退出
创建于2024-08-22
订阅专栏
坚持刷完热题100
等 1 人订阅
共90篇文章
创建于2024-08-22
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
30.两两交换链表中的节点
题目链接 解法1 暴力解法 思路 两两交换节点,既然通过链表不好修改,那是不是可以将节点缓存到数组当中。 然后修改它们的顺序,最后再逐一修改 next 指针就好。 代码 时空复杂度 时间复杂度:三次遍
29.删除链表的倒数第N个结点
题目链接 解法1 暴力解法 思路 如果我们先知道链表的长度,那么就可以合理推断出需要被删除链表的前一个节点。 于是可以先遍历一遍整个链表,获取长度。但此时如果链表的长度和 n 相等,那么说明需要删除头
28.两数相加
题目链接 解法1 暴力解法 思路 最简单的方法就是先获取两个链表的数字,相加得到整数结果,然后对这个结果遍历新建链表。 另外链表存储是逆序,答案也需要逆序,所以在遍历获取时需要变正序。而且输出答案要从
27.合并有序链表
题目链接 解法1 暴力解法 思路 最简单的办法就是将所有链表节点先按照升序给排列出来,缓存到数组当中。 然后再去遍历数组,修改每个节点的 next 指针。最后返回数组的第一个节点即可。 代码 时空复杂
26.环形链表2
题目链接 解法1 暴力解法 思路 和上一题的思路类似,上一题是检查是否有环,而现在题目要求返回环形的入口。 环形的入口其实就是哈希表里第一个重复的节点。直接返回即可。 代码 时空复杂度 时间复杂度:O
25.环形链表
题目链接 解法1 暴力解法 思路 暴力解法的思路依然是将链表用哈希表缓存下来。 如果当前节点存在于哈希表当中,则直接返回。反之则加入哈希表,然后继续遍历下一个节点。 当存在环时,会在哈希表当中查询到直
24.回文链表
题目链接 解法1 暴力解法 思路 最简单的办法就是先遍历整个链表,将链表内容缓存下来。 然后采用双指针的方式遍历是否是回文链表。 代码 时空复杂度 时间复杂度:两次遍历 O(n) 空间复杂度:使用数组
23.翻转链表
题目链接 解法1 暴力解法 思路 因为是单向链表,所以只能一直往前走。 这样可以遍历整个链表缓存下来,然后再从后面开始遍历修改 next 指向。 代码 时空复杂度分析 时间复杂度:一层循环。虽然遍历了
22.相交链表
题目链接 解法1 暴力解法 思路 最暴力的解法就是遍历A链表同时逐个遍历B链表,如果相同则返回。 如果A走到最后则没有相交,则返回null节点。 代码 时空复杂度分析 时间复杂度:两层遍历,O(m *
21.搜索二维矩阵 II
题目链接 解法1 暴力解法 思路 按照暴力的思路就是每一行遍历呗...如果相等直接 return 。 (没想到暴力竟然ac了..笑哭hhh) 代码 时空复杂度 时间复杂度:两层遍历,最差遍历n,虽有提
20.旋转图像
题目链接 解法1 暴力解法 思路 我们仔细观察矩阵旋转之后第一行的坐标变化。 1:0,0 => 0,2 2:0,1 => 1,2 3:0,2 => 2,2 看起来由i, j 变成了 j, ? 我们再看
19.螺旋矩阵
题目链接 解法 模拟坐标轴 思路 模拟坐标轴就是把这个二维数组想象成坐标轴,用 x, y 来代表它的下标,而下标是经过有规律的变化,首先是向右,向下,向左,向上。 可以用两个数组来代表 x, y 的变
18.矩阵置零
题目链接 解法1 复制矩阵 思路 最简单也是空间消耗最多的办法,就是把矩阵额外复制一份,遍历复制的矩阵,如果遇到 0,就把原矩阵的横和列置为零。 代码 时空复杂度 时间复杂度:O(mn) 空间复杂度:
17.缺失的第一个正数
题目链接 解法1 set辅助 思路 在不考虑辅助空间的情况下,要想找出最小的正整数,可以把所有的数字放入 set 中。然后从 1 开始遍历 set,如果存在,那么遍历自增,直到 set 不包含这个数。
16.除自身以外数组的乘积
题目链接 解法 左右累乘 思路 用两个变量,一个记录左边的累积,一个记录右边的累积。在遍历数组的过程中,每个答案数组中的每项会被刷新两次。第一遍为 i 时,乘以左边的累计乘积。第二遍为n - i 时,
15.轮转数组
题目链接 解法1 暴力 思路 按照题目意思来,就是往头部插入最后一个元素。 代码 时空复杂度分析 时间复杂度:删除是 O(1) 的操作,但是往队头插入需要把剩下数组元素往后挪,时间开销是 O(n) ,
14.合并区间
题目链接 解法1 排序+ 思路 合并两个区间其实就是在看他们有没有交集。如何看判断是否有交集呢:左区间的右端点大于等于右区间的左端点。而这一条件需要左区间和右区间是有序排列,如果不是则会出现其他情况。
13.最大子数组和
题目链接 解法1 暴力解法 思路 求子数组的最大和,第一层遍历起点,第二层遍历终点,同时用变量累加,并和当前最大值做比较。 代码 时空复杂度分析 时间复杂度:O(n^2),这个会超时 空间复杂度:O(
12.最小覆盖子串
竟然有一个月没刷题了。。放完假咯,可以继续学习了~ 题目链接 解法1 暴力解法 思路 首先遍历 s 的每一个起始位置 i。从 i 开始扩大子串,直到 j。对于每个子串 s[i:j] 都检查是否包含字符
11.滑动窗口最大值
题目链接 题解1 暴力解法 思路 寻求滑动窗口的最大值,可以把滑动窗口看作一个子数组,每次对子数组求得最大值即可。 暴力解法会超时 代码 时空复杂度分析 时间复杂度:O(n * k) ,其中 k 最大
下一页