题
思
也是看了一眼就知道做不出来的题。
代码参考自官方题解.
其实不是那么难,正如题解中所说,就是求最大上升子序列的一个变种。
代码
class Solution {
public int minDeletionSize(String[] strs) {
int len = strs[0].length();
int[] dp = new int[len];
Arrays.fill(dp, 1);
for (int i = 1; i < dp.length; i++) {
flag: for (int j = 0; j < i; j++) {
for (int k = 0; k < strs.length; k++) {
if (strs[k].charAt(j) > strs[k].charAt(i)) {
continue flag;
}
}
dp[i] = Math.max(dp[i], dp[j] + 1);
}
}
int max = 0;
for (int i : dp) {
max = i > max ? i : max;
}
return len - max;
}
}