当前位置: 首页 > news >正文

算法--最长上升子序列

1、最长上升子序列

#include<iostream>
#include<algorithm>
using namespace std;
int a[100];//原始数组
int dp[100];//以x结尾的数组
int main() {
	int n;//数组长度
	cin >> n;
	for (int i = 1; i <= n; i++) {
		cin >> a[i];//数组中的每个元素
	}
	for (int i = 1; i <= n; i++) {
		dp[i] = 1;
		for (int j = 1; j < i; j++) {
			if (a[j] < a[i]) {
				dp[i] = max(dp[i], dp[j] + 1);
			}
		}
	}
	int max_step = 0;
	for (int i = 1; i <= n; i++) {
		if (dp[i] > max_step) {
			max_step = dp[i];
		}
	}
	cout << max_step << endl;
}

 

 2、例题

 

#include<bits/stdc++.h>
using namespace std;
const int N = 1e6;
int g[N],a[N];
int main()
{
    int n;
    cin>>n;
    int len=0;
    for(int i = 1; i <= n; i ++) {
        cin>>a[i];
    }
    for(int i = 1; i <= n; i ++) {
        if(a[i] > g[len]){
          g[++len] = a[i];
        }else {
            int pos = upper_bound(g+1,g+1+len,a[i]) - g;
            g[pos] = a[i];
        }
    }
    cout<<len;
    return 0;
}

http://www.dtcms.com/a/112032.html

相关文章:

  • 京东零售首次公开!6B参数时序大模型实现20000款商品自动补货预测
  • Java 搭建 MC 1.18.2 Forge 开发环境
  • 《探索边缘计算:重塑未来智能物联网的关键技术》
  • agent 入门
  • ARM-外部中断,ADC模数转换器
  • Vue3学习二
  • 【Node】一文掌握 Express 的详细用法(Express 备忘速查)
  • 【面试篇】Mysql
  • DHCP之中继 Relay-snooping及配置命令
  • Python_level1_字符串_11
  • 给项目中的用户头像,添加用户的历史头像记录功能
  • 深入理解SQL中的<>运算符:不等于的灵活运用
  • C++20的协程简介
  • 轨迹速度聚类 实战
  • 【C++代码整洁之道】第九章 设计模式和习惯用法
  • VSCode运行,各类操作缓慢,如何清理
  • anaconda3/conda依赖安装、环境配置、关联指定python版本
  • 性能测试之jmeter的基本使用
  • [C++面试] new、delete相关面试点
  • 从软件分层架构视角理解英语学习
  • 为什么有的深度学习训练,有训练集、验证集、测试集3个划分,有的只是划分训练集和测试集?
  • 【YOLO系列(V5-V12)通用数据集-X光包裹内违禁品检测数据集】
  • Java 大视界 -- Java 大数据在智能供应链库存优化与成本控制中的应用策略(172)
  • AI平台初步规划实现和想法
  • 20信号和槽_connect函数的用法(1)
  • 隐私投资的收益大于成本
  • 【更新至2024年】2000-2024年各省专利侵权案件结案数数据
  • 基于大模型预测不稳定性心绞痛的多维度研究与应用
  • 若依框架二次开发——RuoYi-AI 集成本地大模型
  • 新冠(covid19)完整测序流程(java调用docker容器方式实现,算法为nextclade和pangolin)