
1 动态规划(完全背包)
基于问题本身,先背包后物品的顺序比较方便,也好理解
class Solution {
public:
bool wordBreak(string s, vector<string>& wordDict) {
int bagSize = s.size();
vector<bool> dp(bagSize + 1, false);
dp[0] = true;
for (int j = 1; j <= bagSize; j++) // 背包容量
for (int i = 0; i < wordDict.size(); i++) { // 物品
int dictLen = wordDict[i].size();
if (j >= dictLen && wordDict[i] == s.substr(j - dictLen, dictLen))
dp[j] = dp[j] || dp[j - dictLen];
}
return dp[bagSize];
}
};

该博客探讨了一种使用动态规划解决完全背包问题的方法。在给定物品和背包容量的情况下,通过遍历物品和调整背包容量,确定能否将所有物品装入背包。代码示例展示了如何实现这一算法。
540

被折叠的 条评论
为什么被折叠?



