【蓝桥杯03】:如果ali]< ali+1] < a[i+2]< ... < ali],则称ai至ai]为一段递增序列,长度为j-i+1。给定一个数列,请问数列中最长的递增序列有多长。

本文介绍了一个寻找给定数列中最长递增序列的问题,并提供了C语言及Python的解决方案。通过遍历数列并比较相邻元素来确定递增序列的长度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

958012eef2cb423e916f11304b187420.png

 

问题描述:

        在数列a[1], a[2], ..., a[n]中,如果ali]< ali+1] < a[i+2]< ... < ali],则称ai至ai]为一段递增序列,长度为j-i+1。
        给定一个数列,请问数列中最长的递增序列有多长。

输入格式:

        输入的第一行包含一个整数n。
        第二行包含n个整数a[1], a[2],..., a[n],相邻的整数间用空格分隔,表示给定的数列。

输出格式:

        输出—行包含一个整数,表示答案。

样例输入:

        7

        5   2   4   1   3    7   2

样例输入:

        3

评测用例规模与约定

        对于50%的评测用例,2<=n<=100,0<=数列中的数<=1000.
        对于所有评测用例,2 <= n <= 1000, 0 <=数列中的数<= 10000。


在数列a[1], a[2], ..., a[n]中,如果ali]< ali+1] < a[i+2]< ... < ali],则称ai至ai]为一段递增序列,长度为j-i+1。给定一个数列,请问数列中最长的递增序列有多长。

C语言解决:

//给定一个数列,请问数列中最长的递增序列有多长。长度j-i+1 
#include <stdio.h>
int main(){
	int a[100],n,i,j,c=0,temp=0;
	scanf("%d",&n);//第一行输入  控制输入几个数
	for(i=0;i<n;i++)
		scanf("%d",&a[i]); //第二行输入   输入n个数 
		
	for(j=0;j<n;j++){
		//前一位和后一位比较  就知道是不是递增序列 
		if(a[j+1] <= a[j]){ 
			if(temp > c)
				c = temp;
			temp = 1; 
		}
		else
			temp++;
	} 
	printf("%d\n",c);
	return 0;
}

运行结果示例: 

50771c7ced55437a8c094e759d481ce4.png

在数列a[1], a[2], ..., a[n]中,如果ali]< ali+1] < a[i+2]< ... < ali],则称ai至ai]为一段递增序列,长度为j-i+1。给定一个数列,请问数列中最长的递增序列有多长。

Python解决:

# 给定一个数列,请问数列中最长的递增序列有多长。长度j-i+1
n = int(input())  # 第一行输入整数
num = list(map(int, input().split(" ")))  # 因为列表第一个数为1
count = 1  # 存储递增长度
n_max = 0  # 最大长度
for i in range(1, n):  # i从1开始
    if num[i] > num[i-1]:
        count = count + 1
        if count > n_max:
            n_max = count
        pass # 直接退出
    else:
        count = 1
print(n_max)

运行结果示例:

b40c03fb663c48289ced5eaca32dd060.png

 总结

        本题从逻辑理解上并没有难度,大家再接再厉!!!

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式up

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值