首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
LeetCode Hot 100
vim怎么退出
创建于2024-08-22
订阅专栏
坚持刷完热题100
等 1 人订阅
共90篇文章
创建于2024-08-22
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
70.最小栈
题目链接 解法 2个栈辅助 思路 最小栈的难点就在于时刻获取最小的元素,此时我们用额外的栈来维护最小的元素即可。 push 和 pop 操作时,最小栈也需要操作,只不过添加时最小栈需要添加当前元素和当
69.有效的括号
题目链接 解法 栈辅助 思路 如果遇到左括号,我们就将其入栈,因为后续还是可以添加其他的字符。 如果遇到右括号,我们需要看看栈顶的字符是不是相应的左括号,如果不是,那说明不是有效的括号。 代码 时空复
68.寻找两个正序数组的中位数
题目链接 解法 二分查找 思路 既然题目要求了空间复杂度,那么暴力解法肯定不行,暴力解法就是合并数组然后返回中位数,时间复杂度是 O(m+n) 。 那么只能采用二分的方法,这道题又不像之前的二分题目,
67.寻找旋转排序数组中的最小值
题目链接 解法 二分 思路 这个和上题类似,都是经过了旋转的数组。这里用二分的模板就好,但是注意一下判定条件,为什么要比较 mid 和 right 。这样是为了区分最小值所在的区间,其实最小值就是旋转
66.搜索旋转排序数组
题目链接 解法 二分查找 思路 这个题目的难点在于有序数组经过了旋转,说明经过旋转的两个字数组其实都是有序的。 怎么去判定当前的区间是否是有序数组呢?我们可以比较 left 和 mid。如果大于,说明
65.在排序数组中查找元素的第一个和最后一个位置
题目链接 解法 二分查找 思路 这题需要两个二分查找,因为分别寻找 target 的左右边界,模板的判定条件不同。 代码 时空复杂度 时间复杂度:O(logn) 空间复杂度:O(1)
64.搜索二维矩阵
题目链接 解法1 暴力解法 代码 时空复杂度 时间复杂度:O(mn) 空间复杂度:O(1) 解法2 二分查找 思路 这个二维数组是严格递增的,是不是把它拍平也是一个有序的一位数组? 那么我们是不是这样
63.搜索插入位置
题目链接 解法 二分查找 思路 这是一道经典的二分查找的题目,找到 target 合适的插入位置。就是小于等于 left 并且大于等于 right。 在二分的时候,判定条件为 left <= righ
62.N皇后
题目链接 解法 回溯 思路 彼此不能攻击代表的是任意两个皇后都不能处在同一行、同一列,或同一条斜线上。同一行和列好理解,但是怎么算对角线呢?可以用 row 和 col 所表示吗?可以的! 左上到右下满
61.分割回文串
题目链接 解法 回溯 思路 这题的回溯大致框架和之前差不多,重点是判定回文串,这里可以用一个辅助函数来帮助判断。 其次就是递归的问题,从字符串的起始位置开始,逐步选择可能的分割点。每次尝试一个新的分割
60.单词搜索
题目链接 解法 回溯 思路 进入回溯的条件是要找到字母的开头,接下来朝4个方向去搜寻下一个字母,而下一个字母肯定是要用一个变量 index 来控制的,其他的参数就剩下遍历当前格子的行和列了。 终止条件
59.括号生成
题目链接 解法 回溯 思路 递归参数肯定需要路径 path ,然后怎么去控制加左括号还是右括号呢?可以用两个计数器。 递归的规则就是如果当前左括号比 n 小,那么可以加左括号;如果当前左括号比右括号大
58.组合总和
题目链接 解法 回溯剪枝 思路 先想一下递归需要哪些参数呢?每次递归的 path ,然后累加或者累减的参数,其次就是每次开始的索引。 为什么需要索引?如果传递索引,那么每次都是从 0 开始循环递归,这
57.电话号码的字母组合
题目链接 解法 dfs回溯 思路 先思考递归结束条件,什么时候会结束呢,就是到 digits 最后一位长度的的时候,index 指的就是当前电话号码的索引,从 0 开始。 接下来遍历当前电话号码上的按
56.子集
题目链接 解法1 dfs回溯 思路 每次进来直接将路径先放在结果集里,然后再去根据 index 来递归后面的数字。 为什么要根据 index 呢?因为要保证结果去重,数组里每个数不一样,根据 inde
55.全排列
题目链接 解法 dfs回溯 思路 先从数组第一个数开始放入,然后递归去放后面的数字,要记得恢复现场。结束条件就是数组当前长度与nums长度相等,说明所有数字都已经放完了。 同时也需要额外空间去保存之前
54.实现 Trie (前缀树)
题目链接 解法 数组和ascii码实现 思路 利用 ascii 码的特性算出数组的 index 代码 解法2 map实现 思路 方法的整体逻辑和数组实现一样,只不过换了底层的数据结构,map 适合存储
53.课程表
题目链接 解法1 dfs检测 思路 图论的建模一般使用邻接表或者邻接矩阵,而这题边比较少,所以适合邻接表。 首先对课表进行建模,建完之后去检测是否成环。 关键是如何判定成环呢? 我们可以使用一个数组来
52.腐烂的橘子
题目链接 解法 bfs扩展 思路 我刚开始的想法是和岛屿数量一样,去给他沉没掉,结果发现并不行,如果存在多个腐烂的橘子,它的腐烂传递应该是相同开始的。 所以这就不能使用 dfs 去解答,但是扩展的思路
51.岛屿数量
题目链接 解法 dfs+沉没岛屿 思路 计算岛屿的数量,本质上就是看当前位置上的 1 上下左右是否有数字 1 ,如果没有,则这是一块岛屿,反之则视为一整块。 我们换个角度,先从遍历开始,如果当前位置是
下一页