文章

31

粉丝

0

获赞

28

访问

4.6k

头像
最长连续递增序列 题解:

DP

dp[i],含义以i位置结尾元素的最长子序列的值

#include <iostream>
#include <vector>
using namespace std;

int main() {
    int n;
    cin >> n;
    
    vector<int> el(n);
    vector<int> dp(n);  // 直接初始化为大小 n
    
    for (int i = 0; i < n; i++) {
        cin >> el[i];
    }

    dp[0] = 1;
    int temp = el[0];
    int ans = 1;  // 初始答案至少为1

    for (int i = 1; i < n; i++) {
        if (el[i] > temp) {
            dp[i] = dp[i - 1] + 1;
        } else {
            dp[i] = 1;
        }
        temp = el[i];  // 注意:无论是否递增,都要更新 temp
    }

    for (int i = 0; i < n; i++) {
       ...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发