小编son*_*ath的帖子

如何从给定的数组中打印最长的增加子序列(LIS)?

我可以通过普通函数和递归函数打印LIS的长度.但我想在C++中打印给定数组中的LIS子序列索引.

这是我找到LIS长度的函数:

int lis( int *arr, int n )
{
   int *lis, i, j, max = 0;
   lis = (int*) malloc ( sizeof( int ) * n );
   for ( i = 0; i < n; i++ )
      lis[i] = 1;
   for ( i = 1; i < n; i++ )
      for ( j = 0; j < i; j++ )
         if ( arr[i] > arr[j] && lis[i] < lis[j] + 1)
            lis[i] = lis[j] + 1;
   for ( i …
Run Code Online (Sandbox Code Playgroud)

c++ algorithm

4
推荐指数
1
解决办法
8816
查看次数

标签 统计

algorithm ×1

c++ ×1