单调递增最长子序列
时间限制:
3000 ms | 内存限制:
65535 KB
难度:
4
-
描述
-
求一个字符串的最长递增子序列的长度
如:dabdbf最长递增子序列就是abdf,长度为4
import java.util.Arrays;
import java.util.Scanner;
public class nyoj17非连续的单调递增最长子序列 {//++++++++++非连续的###########
//时间复杂度O(n^2)
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
while(n-->0){
String s=sc.next();
char[]a=s.toCharArray();
int len=a.length;
int maxlenth=1;
int []dp=new int[len];
Arrays.fill(dp, 1);
for(int i=len-2;i>=0;i--){
for(int j=i+1;j<len;j++)
if(a[i]<a[j])
dp[i]=Math.max(dp[i], dp[j]+1);
if(maxlenth<dp[i])
maxlenth=dp[i];
}
System.out.println(maxlenth);
}
}
}