首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
LeetCode Hot 100
vim怎么退出
创建于2024-08-22
订阅专栏
坚持刷完热题100
等 1 人订阅
共90篇文章
创建于2024-08-22
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
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 步,要
80.划分字母区间
题目链接 解法 贪心+预处理 思路 题目的重点是同一字母最多出现在一个片段中,那就在遍历当前字符串的时候需要记录下来这个字符是否之前出现过。下面思考如果出现过,我们应该保存什么样的数据呢? 布尔值吗?
79.跳跃游戏 II
题目链接 解法1 动态规划 思路 从右往左推,每个位置存储的是从当前位置跳到终点的最小跳跃数;每次尝试所有能跳到的位置,取其中最小的跳跃数 + 1。 代码 时空复杂度 时间复杂度:O(n^2) 空间复
78.跳跃游戏
题目链接 解法1 记忆化搜索(暴力dfs优化版) 思路 刚开始想的是暴力解法,就是从每个索引上开始向后遍历,其中 nextPosition 是当前索引上的值能够走到的最远距离,如果走到了数组队尾,那么
77.买卖股票的最佳时机
题目链接 解法1 暴力解法 思路 最简单的解法就是两层循环,第二层寻找 i + 1 开始后面的最大值,顺便更新答案。 但这样不能 AC ,只能通过 202 个用例。 代码 时空复杂度 时间复杂度:O(
76.数据流的中位数
题目链接 解法1 暴力解法 思路 想要快速的找到中位数,最简单的办法就是每次插入都进行排序,最简单的排序就是插入排序。 具体思路就是每次插入找出该数字应该在的正确大小索引,找中位数则根据数组长度奇偶来
75.前 K 个高频元素
题目链接 解法1 堆排序 思路 返回频率最高的几个元素,首先需要的肯定一个频率表,所以需要先给频次计数。 接下来就是入堆了,这里使用二维数组来模拟(C++ 可以用 pair),保存数值和频次。最后将这
74.数组中的第K个最大元素
题目链接 解法 小根堆 思路 手写小根堆其实核心就在 bubbleUp 和 bubbleDown 这两个函数。 插入一个元素后,调用 bubbleUp ,用它和它的父节点比大小,把它“冒”上去到合适的
73.柱状图中最大矩形
题目链接 解法 单调栈 思路 上一题是维护一个单调递减的栈,而这里需要维护一个单调递增的栈,当遇到一个比栈顶更小的柱子,就意味着栈顶元素的右边第一个更小已经出现了,此时就可以栈顶柱子为“高”的最大矩形
72.每日温度
题目链接 解法1 暴力解法 思路 答案要求找到比今天温度高的下一天,暴力两层循环即可。找到则更新时间间隔,如果没有则是 0。 但是暴力解法不能够 accepted 所以需要优化。 代码 时空复杂度 时
71.字符串解码
题目链接 解法 栈辅助 思路 在构造字符串的时候一共有 4 种情况需要处理: 第一种就是正常的字符,既不是左右括号又不是数字,这种直接添加就好 第二种就是数字,此时我们需要保存这个数字,因为可能出现十
下一页