📅  最后修改于: 2023-12-03 15:39:51.785000             🧑  作者: Mango
在一个给定的整数数组中,插入一个整数会改变原数组的子段。插入最多一个整数后最长的子段的长度为UpDown。
def up_down(lst, num):
# 如果数组为空,则插入整数后的子段长度为1
if not lst:
return 1
max_len = 1
for i in range(len(lst)):
# 计算在这个位置插入整数后的最长子段长度
left = lst[:i] + [num] + lst[i:]
j = 0
while j + 1 < len(left) and left[j] <= left[j+1]:
j += 1
k = len(left) - 1
while k - 1 >= 0 and left[k-1] >= left[k]:
k -= 1
max_len = max(max_len, k - j - 1)
return max_len
print(up_down([1, 2, 3, 2, 1], 4)) # 输出 5
print(up_down([1, 2, 3, 2, 1], 7)) # 输出 3