diff --git a/problems/0139.单词拆分.md b/problems/0139.单词拆分.md index 5b38a7a5..3d4cdb31 100644 --- a/problems/0139.单词拆分.md +++ b/problems/0139.单词拆分.md @@ -250,6 +250,26 @@ class Solution { } } +// 另一种思路的背包算法 +class Solution { + public boolean wordBreak(String s, List wordDict) { + boolean[] dp = new boolean[s.length() + 1]; + dp[0] = true; + + for (int i = 1; i <= s.length(); i++) { + for (String word : wordDict) { + int len = word.length(); + if (i >= len && dp[i - len] && word.equals(s.substring(i - len, i))) { + dp[i] = true; + break; + } + } + } + + return dp[s.length()]; + } +} + // 回溯法+记忆化 class Solution { private Set set;