leetcode140 Word Break II
2024-08-25 01:25:41
思路:
直接爆搜会超时,需要使用记忆化搜索。使用map把已经计算过的情况记录下来,避免重复计算。
实现:
class Solution
{
public:
vector<string> wordBreak(string s, vector<string>& wordDict)
{
unordered_map<int, vector<string>> dp;
return dfs(s, , wordDict, dp);
}
vector<string> dfs(string s, int cur, vector<string>& wordDict, unordered_map<int, vector<string>>& dp)
{
if (cur >= s.length())
{
vector<string> v;
v.push_back("");
return v;
}
if (dp.count(cur)) return dp[cur];
vector<string> ans;
for (auto it: wordDict)
{
int l = it.length();
if (cur + l <= s.length() && s.substr(cur, l) == it)
{
if (cur + l == s.length())
ans.push_back(it);
else
{
vector<string> tmp = dfs(s, cur + l, wordDict, dp);
for (auto it1: tmp)
{
ans.push_back(it + " " + it1);
}
}
}
}
return dp[cur] = ans;
}
};
最新文章
- Hive-0.x.x - Enviornment Setup
- ZeroClipboard跨浏览器复制粘贴
- Windows 域(domain)
- 总结Web应用中基于浏览器的安全漏洞
- 使用trim方法检测用户输入
- 基于visual Studio2013解决C语言竞赛题之1026判断排序
- openSUSE13.2安装Nodejs并更新到最新版
- iOS-延迟操作方法总结
- 常见的DBCP连接池配置
- .Net Core跨平台应用研究-HelloDDNS(动态域名篇)
- 【转】BFG Repo-Cleaner: Removes large or troublesome blobs like git-filter-branch does, but faster.
- CF 1060E. Sergey and Subway
- 音频标签化3:igor-8m项目的训练、评估与测试
- 喵哈哈村的魔法考试 Round #17 题解
- THUSC 2017 D1T2 杜老师
- c++中类似于java jprofiler/eclispe memoryanalysis的性能以及内存分析工具
- 使用addChildViewController手动控制UIViewController的切换
- C#-WebForm-JS知识:基础部分、BOM部分、DOM部分、JS事件
- vector array and normal stanard array
- mysql用法之创建事件
热门文章
- BZOJ_3786_星系探索_splay维护出栈入栈序
- 洛谷 2668&;2540 斗地主——搜索+贪心+dp
- 5.oracle中一个字段中存储&#39;a&#39;,&#39;b&#39;与&#39;a&#39;与a的写法,存储过程中与之对应
- silverlight RadGridView 动态添加数据列
- 如何在ubuntu下使用windows下的程序(eg: .exe)
- java mysql编码问题
- Flutter实战视频-移动电商-18.首页_火爆专区后台接口调试
- HDU2844【背包问题(二进制优化)】
- VR相关学习资源
- 【Linux】Devops的一些运维工具