leetcode困难132分割回文串
Posted qq_40707462
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode困难132分割回文串相关的知识,希望对你有一定的参考价值。
思路:动态规划
用 131、分割回文串 的回溯思路会超时
131 是要记录每一种分割情况,本题只记录最小分割次数,动态规划即可。dp2[i]
记录[0,i]
里的最小次数
class Solution {
public int minCut(String s) {
int len=s.length();
boolean[][] dp=new boolean[len][len];
isVaild(dp,s);
int[]dp2=new int[len];
for(int r=1;r<len;r++){
if(dp[0][r]==false){
dp2[r]=dp2[r-1]+1;//最坏情况,当前字符单独为一段
for(int l=0;l<r;l++){
if(dp[l][r]) dp2[r]=Math.min(dp2[r],dp2[l-1]+1);
}
}
}
return dp2[len-1];
}
public void isVaild(boolean[][]dp,String s){
int len=s.length();
for(int i=0;i<len;i++){
for(int j=0;j<=i;j++){
if(s.charAt(i)==s.charAt(j)){
if(i-j<3) dp[j][i]=true;
else dp[j][i]=dp[j+1][i-1];
}
}
}
}
}
以上是关于leetcode困难132分割回文串的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode No.132 分割回文串 II(动态规划)
Leetcode No.132 分割回文串 II(动态规划)