思路直接用贪心算法
如果保证最长递增序列不变短 尽量选择最小的数作为结束
static int[] solve(int[] source) {
int[]result=new int[source.length];
int resultIndex=-1;
for (int i = 0; i < source.length; i++) {
int cur=source[i];
if(resultIndex==-1){
result[++resultIndex]=cur;
continue;
}
int tail=result[resultIndex];
if(cur<tail&&resultIndex>0&&cur>result[resultIndex-1]){
result[resultIndex]=cur;
}else if(cur<tail&&resultIndex==0){
result[resultIndex]=cur;
}
if(cur>result[resultIndex]){
result[++resultIndex]=cur;
}
}
return result;
}