算法描述
给定一个长度为n的序列r,求序列中单调递增的子序列的长度最长是多少
子序列:序列的一部分项按原有次序排列而得到的序列
大致思路
1.创建一个记录到达对应位置的上升子序列个数的dp数组
2.若字符串只有1个元素,元素本身就构成了最长上升子序列,因此全部元素初始化1
3.用两层for循环比较,第一层从第2个元素开始,逐个记录出dp数组的元素的值
4.第二层用将小于i的前面所有数组元素都进行比较大小
5.判断若为递增,则将记录到达i元素时,已经累计多少个上升子序列个数赋值给dp数组
6.最后创建一个变量并返回最大的dp数组值
代码实现
//时间复杂度O(n^2)
import java.util.Arrays;
import java.util.Scanner;
public class LIS{
public static void main(String[] args) {
Scanner sc = new Scanner