仅供自己学习 思路: 这种题应该用动态规划,因为上到n台阶的方案需要分成不同种方案,即上一层和上两层的多种组合。 首先考虑上到最后一层,可以有上一层台阶到达最后一层,也可以有上两层台阶到达最后一层,那么总的方法就有 dp[n]=dp[n-1]+dp[n-2]种。 因为题目给的范围不为0,所以dp[0 ...
分类:
其他好文 时间:
2021-04-06 14:16:11
阅读次数:
0
题目链接 解题思路:动态规划 使用一系列变量存储买入的状态,再用一系列变量存储卖出的状态。buy[j]表示恰好进行第j笔交易,并且当前手上持有一支股票,这种情况下的最大利润;sell[j]表示恰好进行第j笔交易,并且当前手上不持有股票,这种情况下的最大利润。 C++: #include <vecto ...
分类:
其他好文 时间:
2021-04-02 12:52:37
阅读次数:
0
动态规划题,根据动态规划,选择最短的路径 class Solution { public: int minimumTotal(vector<vector<int>>& triangle) { int n = triangle.size(); vector<int> f(n); f[0] = tria ...
分类:
其他好文 时间:
2021-03-31 12:26:06
阅读次数:
0
一、概念 1、三要素重叠(+备忘录)子问题、最优子结构、状态转移方程 2、(列状态转移方程)步骤 明确初始条件base case、明确状态、明确选择、定义dp数组/函数 二、斐波那契数列 1、原始暴力递归 重复运算--重叠子问题 递归的时间复杂度 2、带备忘录的递归(自顶向下) class Solu ...
分类:
编程语言 时间:
2021-03-31 11:35:50
阅读次数:
0
动态规划 重叠子问题、最优子结构、状态转移方程就是动态规划三要素 思考状态转移方程: 明确 base case → 明确「状态」-> 明确「选择」 → 定义 dp 数组/函数的含义。 # 初始化 base case dp[0][0][...] = base # 进行状态转移 for 状态1 in 状 ...
分类:
其他好文 时间:
2021-03-29 12:05:58
阅读次数:
0
这题好难。自己没想到用动态规划,敲了很久,敲出了可以通过400个测试点的代码,还是有一些情况没有考虑到。不舍得删,记录一下。对输入用例 "aaa" "abac*a" 不能给出正确答案。 class Solution { public boolean isMatch(String s, String ...
分类:
其他好文 时间:
2021-03-16 13:45:02
阅读次数:
0
62. 不同路径 LeetCode_62 题目描述 题解分析 题目使用动态规划来实现。 在二层循环之前,需要对初始值(行为0或者列为0)进行初始化,这些情况都只有一种走法。 在循环体内,由于只能向下和向右走,所有dp[i][j] = dp[i-1][j] + dp[i][j-1]。 代码实现 cla ...
分类:
其他好文 时间:
2021-03-16 13:40:32
阅读次数:
0
1143. 最长公共子序列 LeetCode_1143 题目描述 题解分析 求最长公共子序列主要需要考虑两种情况。 第一种是当前位置的两个字符相同,那么当前最长公共子串就是dp[i-1][j-1]+1。 第二种是当前位置的两个字符不同,那么当前最长公共子串长度就是两个串各退一个字符后的最大长度。 代 ...
分类:
其他好文 时间:
2021-03-16 11:55:59
阅读次数:
0
动态规划基础 在写这篇博客之前,我被动态规划之类的问题折磨地"遍体鳞伤" 。直到我了解到了闫氏DP分析法。之后,我吃饭更香了,身体更棒了!!! ...... 咳嗯额...开个玩笑,言归正传。 闫氏DP分析法是从集合地角度来分析求解DP问题的。它的具体思想是:找某个依据将某个状态用它的子状态来不重不漏 ...
分类:
其他好文 时间:
2021-03-09 13:34:30
阅读次数:
0
338. 比特位计数 给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。 示例 1: 输入: 2 输出: [0,1,1] 示例 2: 输入: 5 输出: [0,1,1,2,1,2] 解答 很明显,根据前面的结果得出后面 ...
分类:
其他好文 时间:
2021-03-04 12:54:54
阅读次数:
0