题解 | #合唱队#

合唱队

https://www.nowcoder.com/practice/6d9d69e3898f45169a441632b325c7b4

#include <iostream>
#include <vector>

using namespace std;


int main() {
    int N;
    cin >> N;
    vector<int> data(N);
    for (int i = 0; i < N; i++) {
        cin >> data[i];
    }
    vector<int> dp1(N, 1), dp2(N, 1);

    for (int i = 0; i < N; i++) {
        for (int j = 0; j < i; j++) {
            if (data[i] > data[j])
                dp1[i] = max(dp1[i], dp1[j] + 1);
        }
    }

    for (int i = N - 1; i >= 0; i--) {
        for (int j = N - 1; j > i; j--) {
            if (data[i] > data[j]) 
                dp2[i] = max(dp2[i], dp2[j] + 1);
        }
    }

    int maxn = 0;
    for (int i = 0; i < N; i++) {
        if (dp1[i] + dp2[i] - 1 > maxn)
            maxn = dp1[i] + dp2[i] - 1;
    }
    cout << N - maxn;
}
// 64 位输出请用 printf("%lld")

#华为OD机试真题#
全部评论

相关推荐

Hello_WordN:咱就是说,除了生命其他都是小事,希望面试官平安,希望各位平时也多注意安全
点赞 评论 收藏
分享
11-18 15:57
门头沟学院 Java
最终归宿是测开:这个重邮的大佬在重邮很有名的,他就喜欢打92的脸,越有人质疑他,他越觉得爽😂
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务