首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
LeetCode Hot 100
vim怎么退出
创建于2024-08-22
订阅专栏
坚持刷完热题100
等 1 人订阅
共100篇文章
创建于2024-08-22
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
100.寻找重复数
题目链接 解法 快慢针 思路 最简单的思路就是将数字放在对应的 index 上,如果出现 nums[index] === index 的情况,那么说明找到了重复的数字,但是题目不允许修改数组,所以需要
99.下一个排列
题目链接 解法 思路 给你一组数字,比如 [1, 2, 3],它们代表一个排列。下一个排列指的是 比现在这个稍微大一点。如果已经是最大的那种了,比如 [3, 2, 1],那就回到最小的 [1, 2,
98.颜色分类
题目链接 解法1 暴力解法 思路 最简单的就是将 0、 1 和 2 计数,然后再原地修改这些数字。 不过达不到进阶的一次扫描要求。 代码 时空复杂度 时间复杂度:O(n) 空间复杂度:O(1) 解法2
97.多数元素
题目链接 解法1 暴力解法 思路 哈希表计数然后再遍历。 代码 时空复杂度 时间复杂度:O(n) 空间复杂度:O(n) 解法2 Boyer-Moore 投票法 思路 这个算法的前提是一定要有一个数超过
96.只出现一次的数字
题目链接 解法 位运算 思路 最简单的肯定是哈希表计数,但是不能达到常量空间的要求,只能思考别的方法。 这里所有其他数字都出现了两次,我们是不是可以用这个两次做文章。在位运算当中,两个相同的数做异或运
95.编辑距离
题目链接 解法 动态规划+滚动数组 思路 dp数组的定义为 dp[i][j] 表示了 word1[0..i-1] 转换到 word2[0..j-1] 的最小操作数。 为什么是 i-1 和 j-1呢?因
94.最长公共子序列
题目链接 解法1 记忆化搜索 思路 i 表示 text1 的位置, j 表示 text2 的位置。memo[i][j] 表示 text1[i:] 和 text2[j:] 的最长公共子序列长度。 如果
93.最长回文子串
题目链接 解法1 暴力解法 思路 判断回文串用双指针即可,把它抽出来作为一个函数。然后两层循环即可、为什么要两层循环?是为了避免漏掉从 i 开始到中间某个索引是回文串。 暴力解法可以ac。 代码 时空
92.最小路径和
题目链接 解法1 记忆化搜索 思路 这题和上一题类似,只不过这题要求的是路径和,而不是到达某地的路径数量。 只需要将递归的返回值设为路径和即可。如果到达终点,返回终点的路径值。 代码 时空复杂度 时间
91.不同路径
题目链接 解法1 记忆化搜索 思路 使用dfs的思路就是向下或向右探索,dfs(x, y) 表示 从 (x, y) 出发到终点的路径数量; 所以 x,y 的路径数量要通过 dfs(x + 1, y)
90.最长有效括号
题目链接 解法1 辅助栈 思路 这题做过类似的,有效括号判断(LeetCode 20),当时是遇到 '(' 就入栈,遇到 ')' 就出栈匹配。 而这题需要入栈字符吗?我们要求的是有效括号的长度,需要用
89.分割等和子集
题目链接 解法1 记忆化dfs 思路 两个子集的和相等,是不是说明这个数组的和是个偶数?那接下来是不是知道了每个子数组的和?就是数组之和的一半。 那我们接下来可以从 0 开始累加,利用背包的思想,拿或
88.乘积最大子数组
题目链接 解法1 暴力解法 思路 最简单的方法就是去连乘,既然是子数组,那么肯定是连续的,两层循环一直找到最大值即可。但是要注意可以是一个子数组。暴力解法可以AC。 代码 时空复杂度 时间复杂度:O(
87.最长递增子序列
题目链接 解法 动态规划 思路 首先思考 dp 数组的定义: dp[i] 就是以 nums[i] 为结尾的最长的递增子序列,最小的子序列是它自己,所以初始化就应该为 1。 dp[i] 只能从 0 开始
86.单词拆分
题目链接 解法1 记忆化dfs 思路 用 dfs 尝试的话从起点开始,一步步切割子串,判断是否能走到终点。 切割的 dfs 函数从索引 start 开始,字符串 s[start:] 是否能被拆成一个或
85.零钱兑换
题目链接 解法1 记忆化递归 思路 这题要求最少得硬币个数,会想当然的去用贪心,我从最大的开始减,然后剩下的去递归计算。这看起来直觉上很对,但实际上这是错的策略,因为它不能保证一定得出最优解。 比如
84.完全平方数
题目链接 解法1 记忆化递归 思路 题目问最少需要几个完全平方数相加才能得到 n ,可以从 1 开始枚举,我们枚举所有小于 remain 的 完全平方数。递归时,我们把 remain 减去当前的完全平
83.打家劫舍
题目链接 解法1 记忆化递归 思路 这题和跳楼梯的思路类似,分解子问题就是从左到右采取“选和不选”的方式,即选第 i 个房子时,要和 i - 2 相加(因为不能连续),然后和 i - 1 比较最大值。
82.杨辉三角
题目链接 解法 逐行动态规划 思路 按照题目链接中的gif动画模拟。 需要循环计算下一层,下一层是根据上一层来计算。先获得上一层,然后计算 prevRow[j - 1] + prevRow[j],最后
81.爬楼梯
题目链接 解法1 暴力递归和记忆化递归 思路 这本质上就是一个斐波那契数列,所以当 n 走到只有 1 个台阶的时候,只有一种解法。 然后递归去处理。到达 n 这个台阶,有两种方法,要么是走 1 步,要
下一页