Leetcode每日一题
黎明blooms
这个作者很懒,什么都没留下…
展开
-
LeetCode之两数相加
2. 两数相加 - 力扣(LeetCode)原创 2024-05-18 20:52:45 · 423 阅读 · 0 评论 -
LeetCode之两数之和
1. 两数之和 - 力扣(LeetCode)原创 2024-05-18 20:26:08 · 368 阅读 · 0 评论 -
LeetCode之二叉搜索树最近节点查询
由于题目上没说二叉搜索树是平衡的,故如果在最坏情况下,二叉搜索树是一条链的情况下,这时针对每条询问都从上向下遍历的话,时间复杂度会达到O(n^2),会超时。所以我们不如先中序遍历,将树从小到大存起来,然后再针对询问进行二分搜索,最后时间复杂度是O(nlogn)。原创 2024-04-26 17:13:46 · 251 阅读 · 3 评论 -
LeetCode之感染二叉树需要的总时间
读完题目我们可以发现,题目所求解的其实就是从开始点到图中任意点的最大距离,但题目中所给出的二叉树是一个有向图,不支持访问其父节点,所以我们可以先从根节点深度遍历建立无向图,然后可以再次深搜或者也可以广搜,边搜边记录更新当前点到开始点的最大距离,这个最大距离就是感染二叉树的最大时间。原创 2024-04-25 18:21:58 · 368 阅读 · 4 评论 -
LeetCode之最长有效括号
对于本题,我们可以采用动态规划的思路来解决本题。读懂题意细细思考的话,我们可以发现,只有这个子串以右括号结尾,它才可以称得上有效括号子串,所以我们只需要看右括号就行了。(2)如果s[i-1]是右括号的话,也就是像 ·····)),那么状态是由f[i-1]和f[i-f[i-1]-2]的和再加2转移而来。(1)如果s[i-1]是左括号的话,也就像这样 ·····(),那么毫无疑问状态转移方程一定是。原创 2024-04-19 00:59:12 · 394 阅读 · 0 评论 -
LeetCode之接雨水
双指针的具体思路是使用两根指针分别指向序列头和序列尾,由于接到雨水的量是由一个坑洼处最低的边界决定的,所以我们要让两头指针中最低的那一端向内移动去寻找更高点(不然接雨水的量永远都被最低端限制,无法增加),倘若左指针小于右指针,我们首先要找到左边的最大值,否则不能接到雨水,然后我们往下面逐步遍历低洼处,逐步计算面积,右指针大于左指针时情况也是相同的。原创 2024-04-17 20:58:42 · 346 阅读 · 0 评论 -
LeetCode之使括号有效的最少添加
此时如果我们试着从前往后遍历字符串的话,我们就可以发现如果说此时左括号‘(’数量多于右括号的话,我们可以在任意一个(不超过序列第一次左括号多于右括号)位置插入右括号,此时都可以使字符串变成有效字符串。但是如果右括号比左括号数量多,我们就不能在右括号后面位置插入左括号,所以每次遇到右括号比左括号多的时候,就必须在右括号前面插入左括号以变成有效字符串。我们首先细细研读题意,发现只有三种情况A是有效字符串。无论在哪两个位置插入右括号,都能使字符串有效。必须在右括号前面插入左括号以变成有效字符串。原创 2024-04-16 00:04:43 · 392 阅读 · 0 评论