问题描述:
在数列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;
}
运行结果示例:
在数列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)
运行结果示例:
总结
本题从逻辑理解上并没有难度,大家再接再厉!!!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/73648.html