本文主要是介绍P1420 最长连号(思路+代码详解)python实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
输入长度为 n 的一个正整数序列,要求输出序列中最长连号的长度。
连号指在序列中,从小到大的连续自然数。
输入格式
第一行,一个整数 n。
第二行,n 个整数 ai,之间用空格隔开。
输出格式
一个数,最长连号的个数。
输入输出样例
输入 #1复制
10 1 5 6 2 3 4 5 6 8 9
输出 #1复制
5
说明/提示
数据规模与约定
对于 100% 的数据,保证1≤n≤,1≤ai≤
题目分析:目的求最长连号
1.连号:一个序列中从小到大的连续子列(即前一个元素与后一个元素相差1)
2.最长:一个序列中可能有多个连续的子列求最长的那一个
思路分析:详细思路在代码中这里给几处易错点,
1.一个序列可能本身全部连续,如(1,2,3,4,5,6)
2.一个序列本身彼此之间均不连续,如(1,3,5,7,9,11)
代码如下:
n=int(input())
s=list(map(int,input().split()))
cnt=1#cnt用于求每个连续的子列的长度
mcnt=1#用于保存连续子列的最长长度
for i in range(n-1):#循环到n-2是为了保证s[i+1]有意义if s[i]+1==s[i+1]:#如果前一个加1等于后一个,那么cnt+1cnt+=1else:#如果不相等让cnt的值变为1cnt=1if cnt>mcnt:#更新最大连续子列的值mcnt=cnt
print(mcnt)
加油!!!
这篇关于P1420 最长连号(思路+代码详解)python实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!