题解 | #Redraiment的走法#
Redraiment的走法
https://www.nowcoder.com/practice/24e6243b9f0446b081b1d6d32f2aa3aa
//Redraiment是走梅花桩的高手。Redraiment可以选择任意一个起点,从前到后, //但只能从低处往高处的桩子走。他希望走的步数最多,你能替Redraiment研究他最多走的步数吗? //本题是最长不下降子序列 //测试用例 1 2 3 -9 3 9 0 11 输出6 #include <iostream> #include <algorithm> #define MAX 201 using namespace std; //int num[MAX]; int A[MAX],dp[MAX]; int main(int argc, char const *argv[]) { int n; cin>>n; for (int i = 1; i <=n; ++i) { cin>>A[i]; } int ans=-1;//记录最大的dp[i] for (int i =1; i <=n; ++i) { dp[i]=1;//初始边界条件 for (int j = 1; j< i; ++j) { if(A[i]>A[j]&&(dp[j]+1>dp[i])) { dp[i]=dp[j]+1; } } ans=max(ans,dp[i]); } cout<<ans<<endl; system("pause"); return 0; }