上一页 1 ··· 26 27 28 29 30 31 32 33 34 ··· 67 下一页
摘要: 和122. 买卖股票的最佳时机 II状态定义一模一样。 转移方程如下: \[ f(i,0) = \max(f(i-1,0),f(i-1,1)+prices[i]-fee); \\ f(i,1) = \max(f(i-1,1),f(i-1,0)-prices[i]); \] class Solutio 阅读全文
posted @ 2021-03-23 13:01 Dazzling! 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 一种常用的方法是将「买入」和「卖出」分开进行考虑:「买入」为负收益,而「卖出」为正收益。在初入股市时,你只有「买入」的权利,只能获得负收益。而当你「买入」之后,你就有了「卖出」的权利,可以获得正收益。显然,我们需要尽可能地降低负收益而提高正收益,因此我们的目标总是将收益值最大化。因此,我们可以使用动 阅读全文
posted @ 2021-03-23 12:51 Dazzling! 阅读(51) 评论(0) 推荐(0) 编辑
摘要: 和123. 买卖股票的最佳时机 III一样的DP解法。 注意对$0$的特判。 class Solution { public: int f[1010][2][110]; int maxProfit(int k, vector<int>& prices) { int n=prices.size(); 阅读全文
posted @ 2021-03-22 20:17 Dazzling! 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 状态表示: \(f(i,0,k)\):表示当前为第$i$天,手里没有股票,交易次数不超过$k$次的最大利润; \(f(i,1,k)\):表示当前为第$i$天,手里有股票,交易次数不超过$k$次的最大利润。 状态转移: 第$i$天手里没有股票有两种情况: 第$i-1$天手里没有股票; 第$i-1$天手 阅读全文
posted @ 2021-03-22 17:45 Dazzling! 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 题意 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 阅读全文
posted @ 2021-03-22 12:55 Dazzling! 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 摘花生+LIS(要取得当前格子的物品,这个物品必须比当前所拥有的物品都大,所以物品的重量严格递增)的结合题。 状态表示:\(f(i,j,k,c)\):当前到达$(i,j)$位置,已经取了$k$件物品,且最后一件物品的重量为$c$。 状态转移:$(i,j)\(可以从\)(i-1,j)\(抵达,也可以从 阅读全文
posted @ 2021-03-22 12:43 Dazzling! 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 暴力思路为枚举每个人的分数,将当前分数作为阈值,统计预测正确的个数,取预测正确个数最大的作为最终的阈值,复杂度为:\(O(n^2)\)。 我们可以先将所有人的分数排个序,这样在枚举第$i$个人的分数作为阈值时,$1 \sim i-1$的分数都小于$i$,$i+1 \sim n$的分数都大于$i$。 阅读全文
posted @ 2021-03-21 10:41 Dazzling! 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 暴力的做法是$O(n^2)$,枚举左右端点$l$和$r$,通过前缀和计算出$sum[l \sim r] = sum[r] - sum[l-1]$,但不足以通过此题。 题意可转化为:找两个端点$l$和$r$,使得$sum[l \sim r]%k = (sum[r] - sum[l-1])%k == 0 阅读全文
posted @ 2021-03-20 19:34 Dazzling! 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 直接暴力枚举所有状态,时间复杂度:\(O(2^{16} \times 4^3)\) const int N=5; bool g[N][N],tmp[N][N]; int n=4,m=4; bool check(int x,int y) { return x>=0 && x<n && y>=0 && 阅读全文
posted @ 2021-03-20 12:14 Dazzling! 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 和95. 费解的开关同题。 暴力总共有$2^$种翻转的方法。 先确定第一行的翻转方式,然后可以很容易判断这样是否存在解以及解的最小步数是多少,最上面一行的翻转方式共有$O(2M)$种,复杂度为$O(NM2M)$。 const int N=20; bool g[N][N],tmp[N][N]; int 阅读全文
posted @ 2021-03-20 10:46 Dazzling! 阅读(53) 评论(0) 推荐(0) 编辑
上一页 1 ··· 26 27 28 29 30 31 32 33 34 ··· 67 下一页