随笔分类 -  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/counting-bits/description/ 解题思路 这个题目,看上去是一个动态规划问题。 用dp[i]代表i中1的个数。但我没想明白怎么写状态转移方程。 多写了几组数据,发现有如下规律: 2-->0 3-->1 4--> 阅读全文
posted @ 2023-01-17 11:35 BJFU-VTH 阅读(16) 评论(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/best-time-to-buy-and-sell-stock/description/ 解题思路 买卖股票的最佳时机是一个系列,这是最简单的一个题目。 首先我们定义一个dp数组,数组中元素的含义是,dp[i]代表了第i天为止能够获 阅读全文
posted @ 2023-01-15 17:58 BJFU-VTH 阅读(21) 评论(0) 推荐(0) 编辑
摘要:问题链接 https://leetcode.cn/problems/pascals-triangle-ii/description/ 解题思路 没啥好说的,跟118没区别。 代码 class Solution: def getRow(self, rowIndex: int) -> List[int] 阅读全文
posted @ 2023-01-15 17:42 BJFU-VTH 阅读(13) 评论(0) 推荐(0) 编辑
摘要:问题描述 https://leetcode.cn/problems/pascals-triangle/description/ 解题思路 杨辉三角可以用动态规划来解决,但它的解题思路跟一般的DP不一样,一般的DP只有一个数组,它牵扯到多个数组。 它的状态转移方程是:res[cur][j] = res 阅读全文
posted @ 2023-01-15 17:34 BJFU-VTH 阅读(28) 评论(0) 推荐(0) 编辑
摘要:题目链接 https://leetcode.cn/problems/climbing-stairs/description/ 解题思路 这是一个典型的动态规划题。记住,任何可以用递归解决的问题,就可以用动态规划解决。 动态规划最重要的是想清楚状态转移方程和退出条件(是不是跟递归很像)。 在这个题目里 阅读全文
posted @ 2023-01-15 17:24 BJFU-VTH 阅读(33) 评论(0) 推荐(0) 编辑

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