leetcode每日一题:奇怪的打印机
题目截图:
由于过程还是手写方便记录,这里手写记录一下,字体不好,多多理解,原题里面也有很多题解,这里记录动态规划解法,以便日后回顾。
过程如下:
代码如下:
public int strangePrinter(String s) {
int n=s.length();
int[][] min = new int[n][n];
for(int i=n-1;i>=0;i--){
min[i][i]=1;
for(int j=i+1;j<n;j++){
if(s.charAt(i)==s.charAt(j)){
min[i][j]=min[i][j-1];
}else{
int min_ij=100000000;
for(int k=i;k<j;k++){
if(min[i][k]+min[k+1][j]<min_ij){
min_ij=min[i][k]+min[k+1][j];
}
}
min[i][j]=min_ij;
}
}
}
return min[0][n-1];
}
感谢观看。