题解 | #合唱队#

合唱队

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机试真题#
全部评论

相关推荐

05-30 15:29
佛山大学 Java
点赞 评论 收藏
分享
哈基米南北绿豆114...:大三下民办二本通信工程转码,崩溃的是我,不要问我为什么行情这么差还转码,计算机只是日暮西山,通信工程是漫漫长夜😭查看图片
我的求职进度条
点赞 评论 收藏
分享
05-29 19:16
已编辑
福建农林大学 测试开发
努力勤奋的马洛格已躺...:翻译:面试前没盘点好hc一下面太多了,现在在排序回去等通知
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务