From 7e3823d619a5ec36beb29e6d2a1c573bc0c7cd00 Mon Sep 17 00:00:00 2001 From: zhicheng lee <904688436@qq.com> Date: Tue, 13 Sep 2022 22:24:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=200139.=E5=8D=95=E8=AF=8D?= =?UTF-8?q?=E6=8B=86=E5=88=86.md=20Java=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加另一种思路的背包算法,比题解中的背包算法速度更快 --- problems/0139.单词拆分.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) 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;