acwing 895 最长上升子序列1

简介: acwing 895 最长上升子序列1

活动 - AcWing

自己做的时候搞成二维数组了  推荐一维数组

#include<iostream>
#include<cstring>
#include<algorithm>
 
using namespace std ;
typedef long long LL ; 
const LL N = 1010 ;
LL n ;
LL a[N] ; 
LL f[N][N] ;//表示前i个数以j结尾的最长上升子序列长度
 
int main(){
  int n ; cin >> n ;
  for(int i = 1 ; i <= n ; i ++) cin >>a[i] ;
  f[1][1] = 1;
  for(int i = 1 ; i <= n ; i ++) f[i][i] = 1 ;// 每一个数的长度初始化为1
  for(int i = 2 ; i <= n ; i ++){
    for(int j = 1 ; j < i ; j ++){
      f[i][j] = f[i-1][j] ;// 继承前i-1个数的以j结尾的最长上升子序列数
      if(a[i] > a[j]) f[i][i] = max(f[i][i] , f[i-1][j] + 1) ;
                //我们只需要更新f[i][i]的长度因为只有i是新加入的
                //对于每一个符合if条件的 我们都取 当前的 和 加1的 的最大值
    }
  }
  LL ans = 0 ;
  for(int i = 1 ; i <= n ; i ++ ) ans = max(ans , f[n][i]) ;
    //前n个数 找数组中的最大值即为最终答案
  cout << ans << endl ;
  return 0 ;
}
 
//一维数组答案  麻痹我自己写的麻烦了  才发现
#include<iostream>
#include<algorithm>
#include<cstring>
 
using namespace std ;
const int N = 1010 ;
int  a[N] ;
int len[N] ;
int main(){
  int n ; cin >> n ;
  for(int i = 1 ; i <= n ; i ++) cin >> a[i] ;
  
  for(int i = 1 ; i <= n ; i ++){
    len[i] ++ ;
    for(int j = 1 ; j < i ; j ++){
      if(a[j] < a[i]){
        len[i] = max(len[i] , len[j] + 1);
      } 
    }
  }
  int ans = 0 ;
  for(int i = 1 ; i<=n ;i ++) ans = max(ans, len[i]) ;
  cout << ans << endl ;
  return 0; 
}
目录
相关文章
|
机器学习/深度学习 算法
【数学建模竞赛】评价类赛题常用算法解析
【数学建模竞赛】评价类赛题常用算法解析
484 0
|
缓存 NoSQL Java
后端接口性能优化分析-多线程优化(中)
后端接口性能优化分析-多线程优化
299 0
|
算法 计算机视觉
OpenCV(四十):图像分割—漫水填充
OpenCV(四十):图像分割—漫水填充
553 0
|
Java 应用服务中间件 Maven
Servlet初识—编写hello world+使用smart Tomcat插件部署(二)
Servlet初识—编写hello world+使用smart Tomcat插件部署
1038 0
Servlet初识—编写hello world+使用smart Tomcat插件部署(二)
水果软件flstudio设置成中文版本的操作步骤
再也用不着给编曲软件FL Studio安装汉化补丁了,今天FL Studio官方不声不响地悄悄更新了FL Studio 20中文版,但一些朋友装完Mac中文版后发现还是英文版,这是怎么回事呢?今天就俩讲一讲正确安装并设置FL中文版的方法。
2322 0
|
域名解析 缓存 监控
ubuntu20.04上安装dnsmasq服务及dns缓存配置
ubuntu20.04 安装dnsmasq服务, 缓存dns,加快网络地址解析
2856 0
|
人工智能 Rust 开发者
【MCP教程系列】使用Python在阿里云百炼创建基于UVX的MCP服务完整指南
本文介绍如何使用基于uvx工具链的Python项目,结合阿里云百炼平台实现小红书文案审核助手的MCP服务开发与部署。首先通过安装uv工具初始化项目并配置虚拟环境,编写server.py文件调用qwen-plus模型完成内容审核功能。随后将项目打包上传至PyPI,供全球开发者访问。接着在阿里云百炼平台上配置并部署该MCP服务,解决可能的依赖问题。最后,在智能体应用中引入此MCP服务进行测试验证,确保其正常运行。
2829 0
|
存储 监控 Docker
探索微服务架构下的容器化部署
本文旨在深入探讨微服务架构下容器化部署的关键技术与实践,通过分析Docker容器技术如何促进微服务的灵活部署和高效管理,揭示其在现代软件开发中的重要性。文章将重点讨论容器化技术的优势、面临的挑战以及最佳实践策略,为读者提供一套完整的理论与实践相结合的指导方案。
|
云安全 人工智能 安全
再登榜首!阿里云蝉联中国公有云网络安全即服务市场份额第一
再登榜首!阿里云蝉联中国公有云网络安全即服务市场份额第一
305 5