题目描述
广场上站着一支队伍,她们是来自全国各地的扭秧歌代表队,现在有她们的身高数据,请你帮忙找出身高依次递增的子序列。 例如队伍的身高数据是(1、7、3、5、9、4、8),其中依次递增的子序列有(1、7),(1、3、5、9),(1、3、4、8)等,其中最长的长度为4。
输入描述
输入包含多组数据,每组数据第一行包含一个正整数n(1≤n≤1000)。
紧接着第二行包含n个正整数m(1≤n≤10000),代表队伍中每位队员的身高。
输出描述
紧接着第二行包含n个正整数m(1≤n≤10000),代表队伍中每位队员的身高。
解题思路
在写编程题的时候,没有思路,可以往动态规划方面想想,动归只是难想,但是代码简洁,此题就利用动归思想。
我们这样来理解这个题,我们先假设只有俩个数字,那么我们只需要看第二个数字是不是比第一个数字大,如果打的话就是2,否则就是1,那么我们现在假设有三个数字,我们先看前俩个数字,和刚才一样的方法,然后我们看第三个数字是不是比第二个数字大,大的话我们就在第二个数字对应的那个长度上加1为第三个数字,所以我们可以借助一个辅助数组来存储对应数字的长度,然后我们遍历一遍就可以得到最长的数字
代码如下
import java.util.*;
public class Main{
public static int len(int