一、题目地址
https://leetcode-cn.com/problems/word-break/
二、具体代码
/**
* @param {string} s
* @param {string[]} wordDict
* @return {boolean}
*/
// 记忆化动态规划
// 时间复杂度: O(n^2)
// 空间复杂度: O(n)
var wordBreak = function(s, wordDict) {
let len = s.length;
let dp = new Array(len + 1).fill(false);
dp[0] = true;
for(let i=1; i<=len; i++) {
for(let j=i-1; j>=0; j--) {
if(dp[i] === true) {
break;
}
if(dp[j] === false) {
continue;
}
let tempStr = s.slice(j, i);
if(dp[j] === true && wordDict.includes(tempStr)) {
dp[i] = true;
break;
}
}
}
return dp[len];
};
三、补充链接
四、补充部分
关注公众号:【深漂程序员小庄】:
内含丰富的学习资源和面试经验(不限前端、java),还有学习交流群可加,并且还有各大厂大佬可一起交流学习,一起进步~添加小庄微信,回复【加群】,可加入互联网技术交流群: