题解 | #最大上升子序列和#自己写的,终于想明白了
最大上升子序列和
https://www.nowcoder.com/practice/dcb97b18715141599b64dbdb8cdea3bd
#include <iostream> using namespace std; int arr[2000]; int dp[2000]; int main() { int N; while (scanf("%d", &N) != EOF) { for (int i = 0; i < N; i++) { scanf("%d", &arr[i]); dp[i] = arr[i]; } for (int i = 1; i < N; i++) { for (int j = 0; j < i; j++) { if (arr[i] > arr[j]) { //这是一个上升的子序列 dp[i] = max(dp[i], dp[j] + arr[i]); //自己 与 加上自己后的子序列 相比较 } } } int count = 0; for (int i = 0; i < N; i++) { //再遍历一遍dp,找出最大值 count = max(count, dp[i]); } printf("%d\n", count); } } // 64 位输出请用 printf("%lld")