AcWing 895. 最长上升子序列-(JAVA+注释)
原题链接
简单
作者:
鼠鼠我
,
2021-02-18 20:41:04
,
所有人可见
,
阅读 290
import java.util.Scanner;
//每次寻找从第一个到自己前面那个中的每一个a[j]是否小于自己,
// 如果小于自己就把f[j]+1代表自己,f[j]是从1到j的上升子序列的最大值
public class Main {
static int N = 1010;
static int n;
static int[] f = new int[N],a = new int[N];
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
for(int i=1;i<=n;i++) a[i] = sc.nextInt();
int res = 1;
for(int i=1;i<=n;i++)
{
f[i] = 1;//如果前面没有比自己小的,f[i]为1
for(int j=1;j<i;j++)
if(a[j]<a[i]) f[i] = Math.max(f[i],f[j]+1);
res = Math.max(res,f[i]);
}
System.out.println(res);
}
}