java 增长最快的子序列
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 增长最快的子序列相关的知识,希望对你有一定的参考价值。
import java.util.*;
public class LongestSequence {
public static void main(String args[]) {
LongestSequence longestSequence = new LongestSequence();
int[][] input = {
null,
{},
{2,6,3,4,1,2,9,5,8},
{0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15}
};
for(int i=0; i< input.length; i++) {
System.out.println("Input: " + Arrays.toString(input[i]) + " Result: " + Arrays.toString(longestSequence.find(input[i])));
}
}
private int[] find(int[] input) {
if(input == null || input.length < 1) {
return new int[0];
}
int[] tracker = new int[input.length];
int maxLen = 0;
Arrays.fill(tracker, 1);
for(int i=0; i<input.length; i++){
for(int j=0; j<=i; j++){
if(input[j] < input[i] && tracker[i] < tracker[j] + 1) {
tracker[i] = tracker[j]+1;
maxLen = Math.max(tracker[i], maxLen);
}
}
}
return findSequence(tracker, input, maxLen);
}
private int[] findSequence(int[] tracker,int[] input, int maxLen) {
int[] result = new int[maxLen];
int j=maxLen-1;
for(int i=tracker.length-1; i>=0;i--) {
if(tracker[i] == maxLen){
result[j--]= input[i];
maxLen--;
}
}
return result;
}
}
以上是关于java 增长最快的子序列的主要内容,如果未能解决你的问题,请参考以下文章
c_cpp 增长最快的子阵列
674. Longest Continuous Increasing Subsequence 最长连续增长的子序列
Java中最快的子字符串搜索方法是啥
Java中可序列化文件的最快压缩
Java中哪个JSON库的解析速度是最快的
nowcoder-练习赛16