感觉大部分都是想用dp做,感觉没必要,简单问题做复杂了.利用前后两数作差,设置一个空字符串ans,差值为1即在ans中加'1',其他值则加'0'.则该问题就转换为了统计一个字符串中有多少个连续的'1',这个问题应该就很熟悉了吧?利用Python中的split()函数,以'0'为分隔符就会得到所有'1'的字符串列表,其中如'000'都会被替换成空串.取最长的'1'串即可.
注意:因为是两两作差,所以答案需要+1.
n = int(input())
a = input().split()
l = []
ans = ''
for i in a:
l.append(int(i))
for j in range(0,n-1):
if(l[j+1]-l[j]==1):
ans += '1'
else:
ans += '0'
ans = ans.split('0')
while '' in ans:
ans.remove('')
max_len = 0
for k in ans:
max_len = len(k) if(len(k)>max_len) else max_len
print(max_len+1)