IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 4.19 最长连续递增子序列 -> 正文阅读

[数据结构与算法]4.19 最长连续递增子序列

【问题描述】

给出一个由n个正整数组成的数组。您的任务是找到给定数组的递增子数组的最大长度。

递增子数组由数组中若干个连续元素组成,且子数组中的每个元素严格地大于前一个元素。

【输入形式】

第一行为一个正整数n(1≤n≤105),表示数组元素的个数

第二行给出n个正整数a1?a2......an? (1≤ai≤109) ,整数之间使用空格分隔
【输出形式】

输出最大递增子数组的长度

【样例输入】

5
1?7?2?11?15

【样例输出】

3

【样例说明】

1 7可以构成一个递增子数组

2 11 15可以构成一个递增子数组

所以本样例的输出结果为3

对于小菜鸡的我动态规划太难理解,于是就去网上学了一下昨日在互帮群窥屏窥到的一个知识点链接,不得不说很详细也很简单易懂。分享给你们,(10条消息) 什么是动态规划(Dynamic Programming)?动态规划的意义是什么?_算法与数学之美-CSDN博客

用了三个做法,前两个为动规思路,第二个借鉴大佬的思路,第三个不用动规也是大佬的思路。都是ac代码。?

第一个:动规1?

//动态规划求出最长子序列1
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
	int n;
	cin>>n;
	int a[n],f[n];
	for(int i=0;i<n;i++){
		cin>>a[i];
		f[i]=1;
	}
	for(int i=0;i<n;i++)
	   for(int j=0;j<i;j++){
	   	if(a[i]>a[j]&&j+1==i)//题目中说了是前一个元素,找了半天的错误 
	   	f[i]=max(f[i],f[j]+1);//dp状态方程 
		} 
	sort(f,f+n);
	cout<<f[n-1];
} 

?第二个:动规2,大佬的代码链接:(11条消息) 4.19 最长连续递增子序列_下雨了嘿咻呀的博客-CSDN博客

//动态规划求出最长子序列2
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
	int n;
	cin>>n;
	int a[n],b[n];
	for(int i=0;i<n;i++){
		cin>>a[i];
		b[i]=1;
	}
	for(int i=0;i<n-1;i++){
		if(a[i]<a[i+1])
		b[i+1]=b[i]+1;//继续在前一个的基础上加一即可 
	}
	sort(b,b+n);
	cout<<b[n-1]; 
}

第三个:不用动规,大佬代码链接:(9条消息) 湖南大学21夏训练四19.最长连续递增子序列_makabakala的博客-CSDN博客?

//不用动规1
#include<iostream>
using namespace std;
int main(){
	int n;
	cin>>n;
	int a[n];
	for(int i=0;i<n;i++)
		cin>>a[i];
	int count=1,max=0;
	for(int i=0;i<n-1;i++){
		if(a[i]<a[i+1])
		count++;
		else if(a[i]>=a[i+1]){
			count=1;
		}
		if(max<count)
		max=count;
	}
	cout<<max;
} 

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-09-09 12:01:51  更:2021-09-09 12:03:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 2:04:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码