您的位置:首页 > 其它

单调递增最长子序列

2016-02-29 10:05 183 查看
import java.util.*;
import java.math.*;

public class Main {

public static void main(String[] args) {
Solution s = new Solution();
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int[] answer = new int
;
for(int i = 0; i < N; i++) {
answer[i] = s.getResult(sc.next());
}
sc.close();
for(int i : answer) {
System.out.println(i);
}
}
}
class Solution {
public int getResult(String s) {
int N = s.length();
char[] chArray = s.toCharArray();
int[] states = new int
;

for(int i = 0; i < N; i++) {
int pickMax = 1;
for(int c = 0; c < i; c++) {
if(chArray[c] < chArray[i]) {
pickMax = states[c] + 1 > pickMax ? states[c] + 1 : pickMax;
}
}
states[i] = pickMax;
}
int max = 1;
for(int i : states) {
if(i > max)
max = i;
}
return max;
}
}


题目不难,算是动态规划的入门吧
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: