我需要编写一个函数,在一个数字列表中找到最长的,不一定是连续的,升序的子序列.该函数需要递归.
我的算法有问题,我无法弄清楚如何解决它.这是一个示例起始列表:
[88,1,22,3,34,6,54,9,19]
正确的结果是:
[1,3,6,9,19]
我想在屏幕上打印这个子序列的长度,在这种情况下,5.
我的功能:
int subseires(int arraysub[], int small, int i, int j, int coun){
if( i==size ) return 0;
if( arraysub[i]>arraysub[j] )
subseires(arraysub, small, i+1, j+1, coun);
if( arraysub[i]<arraysub[j] )
subseires(arraysub, small, i, j+1, coun+1);
return coun;
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以指出我的程序的问题吗?