题解 | #Redraiment的走法#
Redraiment的走法
https://www.nowcoder.com/practice/24e6243b9f0446b081b1d6d32f2aa3aa
//最长下降子序列 #include <stdio.h> int max(int n, int m) { return n > m ? n : m; } int main() { int n = 0; scanf("%d", &n); int dp[n]; int std[n]; for (int i = 0; i < n; i++) { scanf("%d", &std[i]); } for (int i = 0; i < n; i++) { dp[i] = 1; } for (int i = n - 2; i >= 0; i--) { for (int j = n - 1; j > i; j--) { if (std[i] < std[j]) { dp[i] = max(dp[i], dp[j] + 1); } } } int res = 0; for (int i = 0; i < n; i++) { if (dp[i] > res) res = dp[i]; } printf("%d\n", res); return 0; }