赞
踩
递增序列
问题描述
在数列 a[1], a[2], …, a[n] 中,如果 a[i] < a[i+1] < a[i+2] < … < a[j],则称 a[i] 至 a[j] 为一段递增序列,长度为 j-i+1。
给定一个数列,请问数列中最长的递增序列有多长。
输入格式
输入的第一行包含一个整数 n。
第二行包含 n 个整数 a[1], a[2], …, a[n],相邻的整数间用空格分隔,表示给定的数列。
输出格式
输出一行包含一个整数,表示答案。
样例输入
7
5 2 4 1 3 7 2
样例输出
3
思路:
1.接受数据之后声明三个变量x max last
x=当前递增序列的长度=0
max=最长递增序列的长度=0
last=循环中当前数的前一位数=arr[i-1]=-1
2.对序列arr进行遍历
如果当前数(arr[I])>前一位数last 也就是(arr[I-1])
则说明形成递增序列 序列长度x++
判断当前递增序列的长度是否大于最长递增序列
如果大于 则将最长递增序列max的值更新为x的值
(一开始将last的值赋为-1就是为了保证第一次循环时x能从1开始计数)
如果如果当前数(arr[I])>前一位数last
则说明没有形成递增序列 序列长度x=1(重新从1开始计算长度)
每次循环结束时用last保存arr[i]的值
3.输出max
publ
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。