动规
YancyKahn
这个作者很懒,什么都没留下…
展开
-
【Leetcode每日一题】714. 买卖股票的最佳时机含手续费(动态规划)
Leetcode 每日一题 题目链接: 714. 买卖股票的最佳时机含手续费 难度: 中等 解题思路: 某一天有持有或者不持有股票两种状态。写出如下状态转移方程。dp[i][0]表示第i天不持有股票,dp[i][1]持有股票。 dp[i][0]=max(dp[i−1][0],dp[i−1][1]+prices[i]−fee); dp[i][0] = max(dp[i - 1][0], dp[i - 1][1] +prices[i] - fee); dp[i][0]=max(dp[i−1][0],dp[i−原创 2020-12-17 12:23:28 · 274 阅读 · 0 评论 -
【Leetcode每日一题】62. 不同路径(动态规划)
Leetcode每日一题 题目链接: 62. 不同路径 难度: 中等 解题思路: 这道题是一道很基础的动态规划题,从左上角到右下角一共有多少种方式。显而易见,若第0行和第0列的路径数量肯定为1,需要进行初始化。可以很容易写出状态转移方程: dp[i][j]=dp[i−1][j]+dp[i][j−1];i:1→m;j:1→n dp[i][j] = dp[i - 1][j] + dp[i][j - 1]; i:1 \rightarrow m; j:1\rightarrow n dp[i][j]=dp[i−1]原创 2020-12-09 10:27:02 · 253 阅读 · 0 评论 -
【Leetcode 每日一题】845. 数组中的最长山脉(动态规划预处理,求最长上升和最长下降和的最大值)
Leetcode 每日一题 题目链接: 845. 数组中的最长山脉 解题思路: DP求出输入数组的正序的最长上升序列数组和逆序最长上升数组(最长下降)。对于相同位置的正序的最长上升序列和逆序最长上升之和,选择最大的即为最长的山脉。 题解: class Solution: # 求最长上升子序列 def LIS(self, A: List[int]) -> List[int]: # print(A) lena = len(A) dp = [0]原创 2020-10-25 09:46:22 · 261 阅读 · 0 评论 -
POJ-2533(最长上升子序列(简单dp))
题目名称:Longest Ordered Subsequence 题目链接:https://vjudge.net/problem/POJ-2533 简单的动态规划, 状态转移方程为: dp[i] = max(dp[i], dp[j] + 1) 当 a[j] > a[i] && j < i; #include <iostream> #include <cstdio> #include <cstrin原创 2017-11-29 13:49:22 · 363 阅读 · 0 评论 -
最长上升子序列(LIS)和最长下降子序列(LDS)
LIS和LDS模板: const int MAXN = 100005; int a[MAXN], dp[MAXN];//最长上升子序列 int LIS(int n) { int res = 0; for(int i = 0; i < n; ++i) { dp[i] = 1; for(int j = 0; j < i; ++j)原创 2017-11-29 15:07:22 · 2893 阅读 · 0 评论