且记作dp类型吧 #include <cstring> #include <bits/stdc++.h> using namespace std; int main() { int k; while(cin >> k){ int nums[k]; int dp[k + 1]; for(int i = 0; i < k; i++){ cin >> nums[i]; dp[i] = 1; } int maxInt = -1; for(int i = 0; i < k; i++){ for(int j = 0; j< i; j++){ if(nums[j] >= nums[i]){ dp[i] = max(dp[i],dp[j] + 1); } } maxInt = max(dp[i],maxInt); } cout << maxInt << endl; } } // 64 位输出请用 printf("%lld")