![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
dp大法
张李浩
这个作者很懒,什么都没留下…
展开
-
DP Leetcode 091解码方法
地址https://leetcode-cn.com/problems/decode-ways/描述思想代码class Solution {public: int numDecodings(string s) { int n=s.length(); vector<int> f(n+1); f[0]=1; s=' '+s; for(int i=1;i<=n;i++){原创 2021-12-10 20:02:44 · 3507 阅读 · 0 评论 -
DP 不知道啥类型,反正不是完全背包类型 以及一般溢出处理 Leetcode 377 组合总数IV
地址https://leetcode-cn.com/problems/combination-sum-iv/描述思想本题不能使用完全背包思想解决,因为本题顺序不同的序列被视为不同的组合而完全背包不考虑顺序。代码class Solution {public: int combinationSum4(vector<int>& nums, int target) { // 2147483647 + 1 cannot be represented in原创 2021-12-10 19:38:59 · 60 阅读 · 0 评论 -
DP区间匹配问题 Leetcode 087扰乱字符串
地址https://leetcode-cn.com/problems/scramble-string/描述思想代码class Solution {public: bool isScramble(string s1, string s2) { int n=s1.length(); vector<vector<vector<bool>>> f(n,vector<vector<bool>>(n,ve原创 2021-12-10 17:20:47 · 170 阅读 · 0 评论 -
字节条跳动夏令营笔试题 Leetcode 139单词拆分O(n^3)(如何通过字符串哈希,减少时间复杂度,之后改进----O(n^2))
地址https://leetcode-cn.com/problems/word-break/描述思想可以借助字符串哈希的方式,减少时间复杂度,这个之后有时间再研究吧。代码class Solution {public: bool wordBreak(string s, vector<string>& wordDict) { int n=s.length(); vector<bool> f(n+1,false);原创 2021-12-08 15:57:14 · 64 阅读 · 0 评论 -
完全背包问题模型转换 Leetcode 322零钱兑换 Leetcode 518零钱兑换II
地址https://leetcode-cn.com/problems/coin-change/submissions/描述思想代码class Solution {public: //本题可以看出是完全背包问题,那怎么向我们熟悉的完全背包模型进行转化呢 //可以将amount看为背包的体积m,将coin的面额看为单个物品的体积,将物品的价值看为1 //因此本题实质上试求装满背包后,背包装载的最小价值是多少 int coinChange(vector<int&原创 2021-12-08 13:55:41 · 85 阅读 · 0 评论 -
二维费用的背包问题 Leetcode 474一和零
地址https://leetcode-cn.com/problems/ones-and-zeroes/描述思想二位费用背包问题见题解:DP算法提高课:二维代码class Solution {public: int findMaxForm(vector<string>& strs, int m, int n) { vector<vector<int>> f(m+1,vector<int>(n+1));原创 2021-12-08 09:10:22 · 124 阅读 · 0 评论 -
DP动态规划----算法提高课
二维费用的背包问题二维费用的背包问题可以和01背包、完全背包、多重背包、分组背包结合Acwing08二维费用的背包问题地址https://www.acwing.com/problem/content/description/8/描述思路代码将二维优化为一维#include <iostream>using namespace std;const int N=1010;int n,V,M;int f[N][N];int main(){ cin>>n原创 2021-12-08 08:49:07 · 81 阅读 · 0 评论 -
01背包例题
01背包题解https://blog.csdn.net/qq_52934831/article/details/120102264?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163885949416780265422628%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=1638859494167802654原创 2021-12-07 16:10:59 · 96 阅读 · 0 评论 -
动态规划Leetcode010正则表达式匹配(双字符串匹配问题)(与044题类似)
地址https://leetcode-cn.com/problems/regular-expression-matching/描述思想优化思路和完全背包问题很类似代码class Solution {public: bool isMatch(string s, string p) { int n=s.size(),m=p.size(); s=' '+s,p=' '+p; //为了使得字符的下标从1开始 vector<vector&原创 2021-11-12 19:36:14 · 229 阅读 · 0 评论 -
DP动态规划(11.7号前再刷一遍)
背包问题:01背包问题地址:https://www.acwing.com/problem/content/2/描述:思路:二维数组:代码:二位数组:#include <iostream>using namespace std;//N是物品个数,V是容量int N,V;const int M=1e3;//存放某个物品所占的体积和容量int v[M],w[M];//f[i][j]前 i 个物品,背包容量 j 下的最优解(最大价值..原创 2021-09-04 23:54:06 · 252 阅读 · 0 评论