# 2024年10月30日 周三 上午7:45
def f(nums):
dp = [1] * (N) # 注意dp是定义在函数内部的,而且长度为N,初始值为1,因为每个人自己就能组成一个子序列,长度为1,所以dp的初始值为1
for i in range(len(nums)):
for j in range(i + 1):
if nums[j] < nums[i]:
dp[i] = max(dp[i], dp[j] + 1) # 注意这里求的是max,因为dp表示的是最长子序列长度,所以要求max
return dp
N = int(input())
nums = list(map(int, input().split()))
L1 = f(nums)
L2 = f(nums[::-1])[::-1]
#print(L1)
#print(L2)
ls = []
for i in range(len(nums)):
ls.append(L1[i] + L2[i])
#print(ls)
m = max(ls) - 1
print(N - m)

京公网安备 11010502036488号