题目地址:
https://www.lintcode.com/problem/delete-columns-to-make-sorted/description
给定若干长度相同的字符串组成的长 n n n的数组 A A A,将其看成矩阵,要求删除若干列使得剩余的列中,每一列都是从上到下非降的。问至少删去多少列可以达到这个效果。
直接看一下每列是否是非降的即可。代码如下:
public class Solution {
/**
* @param A: A string array
* @return: Minimum D.length
*/
public int minDeletionSize(String[] A) {
// write your code here
int res = 0;
if (A.length == 1) {
return res;
}
for (int i = 0; i < A[0].length(); i++) {
for (int j = 1; j < A.length; j++) {
if (A[j].charAt(i) < A[j - 1].charAt(i)) {
res++;
break;
}
}
}
return res;
}
}
时间复杂度 O ( n l ) O(nl) O(nl), l l l是最长字符串长度。