就是想把这个队形拆分成两半,然后看看每一边能提取出多长的递增子序列,但是60pts ,WA了4个点 代码```cpp
int n; int arr[114]; int left[51]; int right[51]; int findLengthOfLIS(int nums[], int numsSize) { int dp[numsSize];
for (int i = 0; i < numsSize; i++) {
dp[i] = 1;
}
for (int i = 1; i < numsSize; i++) {
for (int j = 0; j < i; j++) {
if (nums[i] > nums[j]) {
if (dp[i] < dp[j] + 1) {
dp[i] = dp[j] + 1;
}
}
}
}
int maxLength = 0;
for (int i = 0; i < numsSize; i++) {
maxLength = maxLength > dp[i] ? maxLength : dp[i];
}
return maxLength;
} int main(){ scanf("%d",&n); for(int i=0;i<n;i++)scanf("%d",&arr[i]); int len=n/2; for(int i=0;i<len;i++){ left[i]=arr[i]; } for(int i=0;i<len;i++){ right[len-i-1]=arr[i+len]; } printf("%d",n-findLengthOfLIS(left,len)-findLengthOfLIS(right,len));
return 0;
}