随笔分类 -  leetcode中等题

摘要:链接 https://leetcode.cn/problems/house-robber/description/ 思路 相邻的要么选,要么不选。 设置dp[i]表示以nums[i]为结尾的序列的最大收益。所以状态转移方程为:dp[i] = max(dp[i-1], dp[i-2]+nums[i]) 阅读全文
posted @ 2023-10-24 10:03 BJFU-VTH 阅读(5) 评论(0) 推荐(0) 编辑
摘要:链接 https://leetcode.cn/problems/longest-increasing-subsequence/description/ 思路 经典DP题目。 我们用dp[i]代表了第i个元素为最终子序列长度的最长递增子序列的长度。 总体思想就是,对于某个子序列i,去遍历它前面的dp[ 阅读全文
posted @ 2023-10-23 19:20 BJFU-VTH 阅读(8) 评论(0) 推荐(0) 编辑
摘要:链接 https://leetcode.cn/problems/maximum-subarray/description/ 思路 1. 在线处理法:对于一个连续的序列来说,如果它小于0,那么它对于周围所有的数组都是减益效果。试想一下,任何数与负数相加,都小于它本身。根据此,可以用在线处理法,O(n) 阅读全文
posted @ 2023-10-23 13:43 BJFU-VTH 阅读(5) 评论(0) 推荐(0) 编辑
摘要:链接 https://leetcode.cn/problems/jump-game-ii/description/ 思路 最基本的思路,能到达某结点的跳跃方式中,最左边的那个结点是最优的;换句话说,到达左边的结点比到达右边的结点更容易。 所以我们可以写代码模拟,每次都求能达到target_index 阅读全文
posted @ 2023-10-23 09:57 BJFU-VTH 阅读(9) 评论(0) 推荐(0) 编辑
摘要:链接 https://leetcode.cn/problems/generate-parentheses/description/ 分析 这个题目是让生成有效的括号组合,首先我们搞明白一个问题,什么叫有效的括号? 1. 所有的括号都能找到有效的闭合。 基于此,我们可以认为:左括号数等于右括号数,且从 阅读全文
posted @ 2023-10-19 14:00 BJFU-VTH 阅读(17) 评论(0) 推荐(0) 编辑
摘要:链接 https://leetcode.cn/problems/number-of-islands/description/ 思路 跟岛屿周长差不多...但我觉得这个比岛屿周长还简单。不知道为什么这个算中等题目,岛屿周长算简单题目 代码 class Solution: def numIslands( 阅读全文
posted @ 2023-10-17 10:05 BJFU-VTH 阅读(6) 评论(0) 推荐(0) 编辑
摘要:链接 https://leetcode.cn/problems/sum-root-to-leaf-numbers/description/ 思路 时刻记住,DFS是递归的一种。而解决递归,最朴素的思路就是:递归的定义就是递归的解。 题目要求我们求根节点到叶子结点的和,我们要提供一个值保持其状态,退出 阅读全文
posted @ 2023-10-16 11:21 BJFU-VTH 阅读(12) 评论(0) 推荐(0) 编辑
摘要:链接 https://leetcode.cn/problems/next-greater-element-ii/description/ 思路 我在单调栈这块是真的不会......稍微一变就想不明白了, 得找个时间攻克一下 这个题目,我能想到的办法就是把数组拉长到2倍(模拟循环数组),然后对其进行单 阅读全文
posted @ 2023-10-09 10:42 BJFU-VTH 阅读(3) 评论(0) 推荐(0) 编辑
摘要:链接 https://leetcode.cn/problems/132-pattern/description/ 思路 这题其实不难,就是边界条件难想。 我们可以先保证单调栈里是逆序,然后判断单调栈中较小的值是否大于当前元素(满足132的1和2的关系)。 代码 class Solution: def 阅读全文
posted @ 2023-10-08 19:09 BJFU-VTH 阅读(7) 评论(0) 推荐(0) 编辑
摘要:链接 https://leetcode.cn/problems/remove-k-digits/description/ 思路 这个题目要求移除k位后,剩下的数字最小。既然剩下的数字最小,那就牵扯到了类似于“字典序”这样一个概念。这样的题目是适合用单调栈来进行解决的。 依然是单调栈的三板斧: 1. 阅读全文
posted @ 2023-10-08 11:24 BJFU-VTH 阅读(20) 评论(0) 推荐(0) 编辑
摘要:链接 https://leetcode.cn/problems/remove-duplicate-letters/description/ 思路 这个题并不是传统的单调栈,所以硬套单调栈会懵逼。 什么时候用单调栈? 这个题目要求去除重复字母,还要保持字典序。 注意,跟相对顺序相关的题目,如:其后比他 阅读全文
posted @ 2023-10-08 09:56 BJFU-VTH 阅读(24) 评论(0) 推荐(0) 编辑
摘要:问题描述 https://leetcode.cn/problems/flatten-binary-tree-to-linked-list/description/ 解题思路 这个题目,用一个数组就能很好的解决。但空间复杂度是O(n). 题目中给的进阶要求,是要空间复杂度为O(1),所以这就要求我们在 阅读全文
posted @ 2023-01-30 17:26 BJFU-VTH 阅读(29) 评论(0) 推荐(0) 编辑
摘要:问题描述 https://leetcode.cn/problems/path-sum-ii/description/ 解题思路 首先,我们设置一个容器存储最终的结果。 其次,我们在遍历过程中,更新数组。 然后,在叶子结点处判断是否加入。 代码 # Definition for a binary tr 阅读全文
posted @ 2023-01-29 12:40 BJFU-VTH 阅读(23) 评论(0) 推荐(0) 编辑
摘要:问题描述 https://leetcode.cn/problems/recover-binary-search-tree/description/ 解题思路 二叉搜索树的中序遍历一定是一个有序的序列。 题目中说两个节点的值被交换了,即我们中序遍历得到的二叉搜索树是无序的,但交换两个节点即为有序。 所 阅读全文
posted @ 2023-01-29 11:38 BJFU-VTH 阅读(14) 评论(0) 推荐(0) 编辑
摘要:问题描述 https://leetcode.cn/problems/validate-binary-search-tree/description/ 解题思路 二叉搜索树的性质是:root节点要大于左子树的最大值,小于右子树的最小值。 同时,对上层,也要更新本层的最大值和最小值以供继续递归。 补充: 阅读全文
posted @ 2023-01-29 11:13 BJFU-VTH 阅读(22) 评论(0) 推荐(0) 编辑
摘要:问题描述 https://leetcode.cn/problems/longest-palindromic-substring/description/ 解题思路 如果一个字符串是回文串,那么它左边接上一个字符,右边接上一个字符,如果这两个字符相等,那这个长字符串必然是回文串。 所以,我们可以从原来 阅读全文
posted @ 2023-01-15 18:17 BJFU-VTH 阅读(21) 评论(0) 推荐(0) 编辑
摘要:问题链接 https://leetcode.cn/problems/minimum-size-subarray-sum/description/ 解题思路 这是一个长度不定的滑动窗口。 我们需要设置一个left指针和right指针,分别指向滑动窗口的左边界和右边界。 我们判定当前的滑动窗口是否满足题 阅读全文
posted @ 2023-01-15 17:13 BJFU-VTH 阅读(35) 评论(0) 推荐(0) 编辑
摘要:问题描述 https://leetcode.cn/problems/repeated-dna-sequences/description/ 解题思路 这同样是一个滑动窗口的典型问题。 首先我们看一下数据规模,进行一下异常处理。 我们设置一个res用来存储最后的结果,一个se用来存储遍历过的字符串,方 阅读全文
posted @ 2023-01-15 13:06 BJFU-VTH 阅读(13) 评论(0) 推荐(0) 编辑
摘要:问题链接 https://leetcode.cn/problems/find-minimum-in-rotated-sorted-array/description/ 解题思路 这个题目要求用logn的算法,那只能是二分了。 二分的时候,我们要讲究策略。首先,我们要找旋转数组中的最小值。我们先分析数 阅读全文
posted @ 2023-01-12 11:32 BJFU-VTH 阅读(53) 评论(0) 推荐(0) 编辑
摘要:问题链接 https://leetcode.cn/problems/search-a-2d-matrix/description/ 解题思路 我们可以确定,数据是有序的。所以我们有2种办法用二分来解决。 第一种,我们可以写个下标映射函数,把矩阵当做一维数组来进行遍历。 第二种,我们可以先对列进行二分 阅读全文
posted @ 2023-01-12 00:20 BJFU-VTH 阅读(15) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示