#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int dp[1001][2];
int main()
{
int n;cin>>n;
vector<int>a(n+1);
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<=n;i++){
dp[i][0]=dp[i][1]=1;
for(int j=1;j<i;j++){
if(a[j]<a[i])dp[i][0]=max(dp[i][0],dp[j][0]+1);
if(a[j]>a[i])dp[i][1]=max(dp[i][1],max(dp[j][0],dp[j][1])+1);
}
}
int ans=0;
for(int i=1;i<=n;i++)
ans=max(ans,max(dp[i][0],dp[i][1]));
cout<<ans;
}
作者:Acception
链接:https://www.acwing.com/activity/content/code/content/1332901/
来源:AcWing
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。