解法
boolean类型的状态转移方程,一维就可以,没有必要使用二维
代码
import java.util.*;
import java.util.List;
class Solution {
public boolean wordBreak(String s, List<String> wordDict) {
/*boolean[] dp=new boolean[s.length()+1];
dp[0]=true;
for(int i=1;i<dp.length;i++)
{
for(int j=0;j<=i;j++)
{
if(wordDict.contains(s.substring(j,i))&&dp[j])
{
dp[i]=true;
break;
}
}
}
return dp[dp.length-1];*/
Set<String> wordDictSet=new HashSet(wordDict);
boolean[] dp = new boolean[s.length() + 1];
dp[0] = true;
for (int i = 1; i <= s.length(); i++) {
for (int j = 0; j < i; j++) {
if (dp[j] && wordDictSet.contains(s.substring(j, i))) {
dp[i] = true;
break;
}
}
}
return dp[s.length()];
}
}
京公网安备 11010502036488号