最大不降子序列问题:
//最近看了网易云课堂上哈工大李宏志老师的算法设计课后作业,动态规划之最大不降子序列;
#include <iostream>
using namespace std;
int main ()
{
int n,j;
int s[100];//这个表示第i个数的最大不降序列的长度;
int a[100];//这个表示每一个元素;
cout <<"请输入元素的个数:"<<endl;
cin >>n;
s[0]=1;
for (int i=0;i<n;i++)
{
cin>>a[i];
int max=s[0];
int count=0;
for (j=0;j<i;j++)
{
if(a[i]>a[j])
{
if(s[j]>max)
max=s[j];
count++;
}
}
if (count==0)
{
s[i]=1;
}
if (count!=0)
{
s[i]=max+1;
}
}
int mm=s[0];
for (int i=0;i<n;i++)
{
if (s[i]>mm)
mm=s[i];
}
cout<<mm<<endl;
return 0;
}
//最后输出数组中的最大值即是最大不降子序列的长度;