动态规划:最长非降子序列
求序列最长非降子序列的长度,如int arr[] = { 2,3,5,1,5,0,7 };
最长子序列长度是5,(2,3,5,5,7)。
#include <iostream>
using namespace std;
int arr[] = { 2,3,5,1,4,5,0,7 };
const int length = sizeof(arr) / sizeof(arr[0]);
int func()
{
int dp[length] = { 0 };
for (int i = 0; i < length; i++)
{
dp[i] = 1;
for (int j = 1; j < i ; j++)
{
if (arr[i - j] <= arr[i] && dp[i-j] <= dp[i])
{
dp[i]++;
}
}
}
return dp[length-1];
}
int main()
{
cout << func() << endl;
}