我们把数组 A 中符合下列属性的任意连续子数组 B 称为 “山谷”:
1)B.length >= 3
2)存在 0 < i < B.length - 1 使得 B[0] >B[1] > ... B[i-1] > B[i] < B[i+1] < ... <B[B.length - 1]
(注意:B 可以是 A 的任意子数组,包括整个数组 A。)
给出一个整数数组 A,返回最长 “山谷” 的长度。
如果不含有 “山谷” 则返回 0。
输入例子1:
[4,3,2,5,3,1,4,8]
输出例子1:
5
说明
[5,3,1,4,8]
思路
暴力
代码
s = input()
a = eval(s) #因为输入直接包括中括号,当成字符串,所以用eval处理
n = len(a)
maxn =0
for i in range(n):
j = i
while j+1<n and a[j+1]<a[j]:
j += 1
k=j
while k+1<n and a[k]<a[k+1]:
k += 1
if j>i and k>j:
maxn = max(maxn,k-i+1)
print(maxn)
网友评论