首页 > 编程知识 正文

最长递增子序列的个数,最长递增子序列 动态规划

时间:2023-05-03 16:39:56 阅读:32942 作者:4620

[java]代码库package com.wzs;

import java.util.ArrayList;

import java.util.Arrays;

import java.util.List;

//求数组中最长升序的子序列

公共类测试

{

publicstaticvoidmain (字符串[ ] args ) )。

{

int a[]=

{

1、-1、2、-3、4、-5、6、-7

(;

find1(a;

}

//[1,- 1,2,- 3,4,- 5,6,-7]

//[ 1,1,2,1,3,1,4,1 ]

//时间复杂度:o(n*n ) ) ) ) ) ) ) )。

publicstaticvoidfind1(int[]a ) )。

{

int length=a.length;

int[] list=new int[length];//存储第I个元素之前的最长升序顺序值

列表result=new ArrayList (; //保存最长升序的序列

for(intI=0; i length; I )

{

list[i]=1;

for(intj=0; j i; j )

{

if(a(j ) a (I ) list )1list ) )

{

list[i]=list[j] 1;

if(result.isempty ) )

{

result.add(list[j];

}

if (! result.contains (列表[ I ] ) )

{

result.add (列表[ I ];

}

}

}

}

system.out.println (对于第' I个元素,最长升序数组: ' Arrays.tostring () list );

查找列表中的最大值

int max=list[0];

for(intI=0; i length; I )

{

if (列表[ I ] max ) )。

{

max=list[i];

}

}

System.out.println (最长增量序列长度) max );

System.out.println;

}

}

//源代码片段来自云代码http://yuncode.net

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。