牛客:HJ24 合唱队[华为机考][最长递增子集][动态规划]

学习要点

  1. 求最长递增字列
  2. 求最长递减子列

题目链接

合唱队_牛客题霸_牛客网

题目描述

解法:动归求最长递增子列

cpp 复制代码
#include <iostream>
#include <vector>
using namespace std;

int main() {
    int n;
    while (cin >> n) {
        // 输入的数组
        int tmp;
        vector<int> v;
        for (int i = 0; i < n; ++i) {
            cin >> tmp;
            v.push_back(tmp);
        }

        // 最长递增子序列 从左往右
        if (v.empty()) return 0;
        vector<int> dp1(n, 1);
        for (int i = 0; i < n; ++i) {
            for (int j = 0; j <  i ; ++j) {
                if (v[i] > v[j]) {
                    dp1[i] = max(dp1[i], dp1[j] + 1);
                }
            }
        }
        // 最长递减子序列 从右往左
        if (v.empty()) return 0;
        vector<int> dp2(n, 1);
        for(int i = n-1;i>=0;i--)
        {
            for(int j = n-1;j>i;j--)
            {
                if(v[i] > v[j])
                {
                    dp2[i] = max(dp2[i],dp2[j]+1);
                }
            }
        }

        int result;
        for(int i =0;i<n;i++)
        {
            result = max(result,dp1[i]+dp2[i]-1);
        }
        cout << n - result;


    }
}
// 64 位输出请用 printf("%lld")
相关推荐
智驱力人工智能3 分钟前
景区节假日车流实时预警平台 从拥堵治理到体验升级的工程实践 车流量检测 城市路口车流量信号优化方案 学校周边车流量安全分析方案
人工智能·opencv·算法·安全·yolo·边缘计算
MicroTech20255 分钟前
微算法科技(NASDAQ :MLGO)抗量子攻击区块链共识机制:通过量子纠缠态优化节点验证流程,降低计算复杂度
科技·算法·区块链
pp起床6 分钟前
贪心算法 | part01
算法·贪心算法
梵刹古音6 分钟前
【C语言】 字符数组与多维数组
c语言·数据结构·算法
咩咩不吃草15 分钟前
机器学习不平衡数据处理三招:k折交叉验证、下采样与过采样实战
人工智能·算法·机器学习·下采样·过采样·k折交叉验证
weixin_4521595516 分钟前
模板编译期条件分支
开发语言·c++·算法
多恩Stone17 分钟前
【3DV 进阶-11】Trellis.2 数据处理与训练流程图
人工智能·pytorch·python·算法·3d·aigc·流程图
老师用之于民18 分钟前
【DAY20】数据结构基础:(算法)排序、折半查找的函数实现
数据结构·算法·排序算法
一起养小猫21 分钟前
Flutter for OpenHarmony 进阶:推箱子游戏算法与关卡设计深度解析
算法·flutter·游戏
民乐团扒谱机22 分钟前
【微实验】Zhang-Suen 快速并行细化算法与MATLAB实现
人工智能·学习·算法·计算机视觉·数学建模·matlab