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

最长递增子序列

给定一个已知数组:array[7]={1,5,9,3,4,11,5},找出最长递增子序列,返回其长度。

答案:4

即:1 5 9 11

解题思路:

给定一个与该数组长度一样的数组dp[7]={0},dp[i-1]记录以array[i]为结尾的最长递增子序列,如果array[i] > array[i-1]的话,那么dp[i]=dp[i-1]+1,否则忽略;

代码实现思路:

  1 <= i < 7

  对于这6个元素,分别以他们6个为结尾,然后对比他们与前一个元素的大小关系,然后进行加操作或者无操作。

  每次进行比较前,都要找到前面所有项中最长的子序列长度记为_max;

  然后看看本元素是不是大于之前的所有元素,如果不是就不能算作递增的,进行下一项。

#include <iostream>  
#include <algorithm>  

using namespace std;  

int num[7]={1,5,9,3,4,11,5};
int  dp[7]={0};

int process(int array[],int n)
{
	//起始项赋值为1 
	dp[0]=1;
	int _max=0;
	int j=0;int k=0;
	
	for(int i=1;i<n;i++)
	{
		
		//找到前边i-1项里最长的递增序列长度值 
		for(j=0;j<=i-1;j++)
		{
			if(_max<dp[j])
			{
				_max=dp[j];
			}	
		}
		
		int flag=1;
		
		//确认i项是不是大于前边所有项 
		for(k=0;k<i-1;k++)
		{
			if(array[i]<array[k])
			{
				flag=0;
				break;	
			}
		}
		
		if(flag)
		{
			dp[i]=_max+1;
		}
	}
	
	int maxLen=0;
	for(int i=0;i<n;i++)
	{
		if(maxLen<dp[i])
		{
			maxLen=dp[i];
		}
	}
	
	return maxLen;
}

int main()
{
	cout<<process(num,7)<<endl;
}

 

转载于:https://www.cnblogs.com/achao123456/p/8653061.html

相关文章:

  • 清华产业十大创新项目评选 新华三H3Cloud OS夺冠
  • 超轻量模板引擎
  • 异构计算助力客户春节webp图片编码
  • Python练习实例100例(持续更新中)
  • 技术往事:微信估值已超5千亿,雷军曾有机会收编张小龙及其Foxmail
  • 论flex布局和box布局的华为meta8手机自带浏览器的兼容
  • ajaxfileupload-上传文件示例
  • 4027. [HEOI2015]兔子与樱花【树形DP】
  • 1491. [NOI2007]社交网络【最短路计数】
  • Java基础-比较运算符Compare Operators
  • LDAP DIT设计参考
  • 爬取校园新闻首页的新闻
  • 学习索引结构的一些案例——Jeff Dean在SystemML会议上发布的论文
  • node爬虫-使用puppeteer
  • 使用linux下的crontab定时任务跑定时脚本
  • [LeetCode] Wiggle Sort
  • Angular Elements 及其运作原理
  • co模块的前端实现
  • ESLint简单操作
  • FastReport在线报表设计器工作原理
  • HTML-表单
  • IOS评论框不贴底(ios12新bug)
  • Python 基础起步 (十) 什么叫函数?
  • Redash本地开发环境搭建
  • Redis学习笔记 - pipline(流水线、管道)
  • session共享问题解决方案
  • Yeoman_Bower_Grunt
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 官方解决所有 npm 全局安装权限问题
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 跨域
  • 日剧·日综资源集合(建议收藏)
  • 入手阿里云新服务器的部署NODE
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 写给高年级小学生看的《Bash 指南》
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​secrets --- 生成管理密码的安全随机数​
  • #Z2294. 打印树的直径
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • $refs 、$nextTic、动态组件、name的使用
  • (13):Silverlight 2 数据与通信之WebRequest
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (C语言)逆序输出字符串
  • (JS基础)String 类型
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (Ruby)Ubuntu12.04安装Rails环境
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (未解决)jmeter报错之“请在微信客户端打开链接”