import java.util.*;
public class Main{
static int[] f = new int[1005];//存数
static int[] w = new int[1005];//从第一个开始到i的最长上升子序列
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int n = in.nextInt();
for(int i=1;i<=n;i++){
f[i] = in.nextInt();
}
for(int i=1;i<=n;i++){
w[i]=1;
for(int j=1;j<i;j++){
if(f[i]>f[j]){
w[i]=Math.max(w[i],w[j]+1);
//System.out.println(w[i]);
}
}
}
int res=0;
for(int i=1;i<=n;i++){
res=Math.max(res,w[i]);
}
System.out.println(res);
}
}
Java实现最长上升子序列(DP)
使用动态规划求最长上升子序列
最新推荐文章于 2024-06-23 16:23:15 发布
该程序实现了动态规划算法,计算输入整数数组中最长上升子序列的长度。通过对每个元素遍历并比较其前一个元素,更新最长上升子序列的长度,最终输出最长上升子序列的长度。
1126

被折叠的 条评论
为什么被折叠?



