LeetCode 139. Word Break

Solution1:
记忆化递归的典型套路题
参考网址:https://zxi.mytechroad.com/blog/leetcode/leetcode-139-word-break/

class Solution { //记忆化递归!
public:bool wordBreak(string s, vector<string>& wordDict) {unordered_set<string> dict(wordDict.begin(), wordDict.end());return my_word(s, dict);}private:unordered_map<string, bool> word_map;bool my_word(string s, unordered_set<string>& dict) {if (word_map.count(s)) return word_map[s]; //已经判断过的子串if (dict.count(s)) return word_map[s] = true;for (int i = 1; i < s.size(); i++) {string temp1 = s.substr(0, i);string temp2 = s.substr(i);if (my_word(temp1, dict) && dict.count(temp2)) return word_map[s] = true;}return word_map[s] = false;}
};

Solution2:
此题也是典型的动态规划题目
参考网址:https://www.youtube.com/watch?v=il8Oi21WZN0
时间复杂度:O(n2−−n3)O(n2−−n3)O(n^2--n^3)
空间复杂度:O(n)O(n)O(n)

class Solution {
public:bool wordBreak(string s, vector<string>& wordDict) {int len = s.length();unordered_set<string> dict(wordDict.begin(), wordDict.end());vector<bool> dp(len + 1, false);s = " " + s;dp[0] = true;for (int i = 1; i <= len; i++) {for (int j = 0; j < i; j++) {string temp = s.substr(j + 1, i - j);if (dp[j] && dict.count(temp)) {dp[i] = true;break;}}}return dp[len];}
};

【记忆化递归+DP】LeetCode 139. Word Break相关推荐

  1. 【DFS + 记忆化递归】LeetCode 140. Word Break II

    LeetCode 140. Word Break II Solution1:我的答案 纯DFS,在第31个case时超时,还是记录一下.. class Solution { // DFS public ...

  2. LeetCode 87. 扰乱字符串(记忆化递归 / DP)

    文章目录 1. 题目 2. 解题 2.1 记忆化递归 2.2 动态规划 1. 题目 给定一个字符串 s1,我们可以把它递归地分割成两个非空子字符串,从而将其表示为二叉树. 下图是字符串 s1 = &q ...

  3. LeetCode 514. 自由之路(记忆化递归 / DP)

    文章目录 1. 题目 2. 解题 1. 题目 电子游戏"辐射4"中,任务"通向自由"要求玩家到达名为"Freedom Trail Ring" ...

  4. 【DFS + 记忆化递归 + DP】LeetCode 91. Decode Ways

    LeetCode 91. Decode Ways Solution1:我的答案 还是记录一下,最容易想到的是DFS,但是在第223/238个case上就超时了... class Solution { ...

  5. leetcode 139. Word Break | 139. 单词拆分(动态规划)

    题目 https://leetcode.com/problems/word-break/ 题解 时隔一天,再次遇到 dp 问题- 本题和 leetcode 375. Guess Number High ...

  6. 【重点!记忆化递归+DP】LeetCode 72. Edit Distance

    LeetCode 72. Edit Distance 参考链接:https://zxi.mytechroad.com/blog/dynamic-programming/leetcode-72-edit ...

  7. leetcode 140. Word Break II | 140. 单词拆分 II(动态规划)

    题目 https://leetcode.com/problems/word-break-ii/ 题解 由 leetcode 139. Word Break | 139. 单词拆分(动态规划) 改造而来 ...

  8. LeetCode 337. 打家劫舍 III(记忆化+递归)

    文章目录 1. 题目 1.1 相关题目: 2. 解题 2.1 递归 2.2 记忆化递归 1. 题目 在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区.这个地区只有一个入口,我们称 ...

  9. 爬楼梯与路径类题目记忆化递归与动态规划双解法(Leetcode题解-Python语言)

    70. 爬楼梯(剑指 Offer 10- II. 青蛙跳台阶问题) 递归(英语:Recursion),是指在函数的定义中使用函数自身的方法.有意义的递归通常会把问题分解成规模缩小的同类子问题,当子问题 ...

最新文章

  1. 有意思的onerror的用法
  2. Codeforces Round #609 (Div. 2) D. Domino for Young 黑白染色
  3. VR全景看年评!PConline年度评测盛典等你来体验
  4. 1.Java 面试题整理(基础篇一)
  5. Python直接调用C库的printf()函数打印一条消息
  6. Hls之播放遇到的坑
  7. xmind 使用备忘
  8. Google Calendar Sync_ 把 Microsoft Outlook 同步到 G...
  9. Entity Framework 延伸系列目录
  10. 函数在某点附近有界,但该点无极限值的例子
  11. springboot2.3.9使用spring data elasticsearch兼容低版本es(6.X)
  12. 机器人炒菜感想_炒菜机器人
  13. pyqt 取鼠标处文字_侧裙可拆按键随心装,黑爵GTi模块化游戏鼠标评测
  14. [一起来学mysql]-----MySQl的增删改查
  15. 北邮信通复试题c语言,北邮计算机考研复试题的C语言解答精选.pdf
  16. ES6——class类的继承与静态方法
  17. Python——切片操作
  18. C语言中的自定义函数
  19. 赛博朋克宣言1993_赛博朋克2077和未来武器
  20. sqlserver 查看服务器名称以及sql语句跨服务器查询设置

热门文章

  1. C# 怎样判断 datagridview 中的checkbox列是否被选中
  2. pytorch---之pin_memory
  3. Kalibr源码学习(一): 重投影误差
  4. OpenCV图像处理(17)—— 各种二值化对比
  5. python静态方法怎么调用_python实例方法、静态方法和类方法
  6. MFC UpdateData
  7. android开发 解析 b5,张绍文android开发高手课读书笔记4-启动优化篇
  8. postgresql 自定义表变量_Oracle GoldenGate新支持开源关系型数据库PostgreSQL
  9. OpenCV-Python实战(23)——将OpenCV计算机视觉项目部署到云端
  10. StackGAN详解与实现(使用tensorflow2.x实现)——利用文本合成逼真的图像