本文主要是介绍代码训练营第49天:leetcode139单词划分|多重背包|背包讲解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
leetcode139:单词划分
文章讲解:leetcode139
多重背包:文章讲解
背包讲解:文章讲解
1,leetcode139 单词划分
class Solution {
public:bool wordBreak(string s, vector<string>& wordDict) {unordered_set<string> wordSet(wordDict.begin(), wordDict.end());vector<bool> dp(s.size() + 1, false);dp[0] = true;for (int i = 1; i <= s.size(); i++) { for (int j = 0; j < i; j++) { string word = s.substr(j, i - j);if (wordSet.find(word) != wordSet.end() && dp[j]) {dp[i] = true;}}}return dp[s.size()];}
};
就是一个排列的背包问题,结合了一下字符串操作而已。
2,背包问题总结:
就做题的感觉来看,基本上要默认对于背包问题的递推式非常熟悉,在这基础上要区分是基础,组合或者排列问题,确定具体的递推式和遍历顺序。总之对于熟练度的要求很高。
这篇关于代码训练营第49天:leetcode139单词划分|多重背包|背包讲解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!