zhi识点
1.这个下面link的第一条评论很有必要看一下,解开了我心中多年的疑惑(可以通过举例法)
点我
#include <bits/stdc++.h>
#define N 1010
using namespace std;
int n, w[N];
int l[N], r[N];
int main()
{
cin >> n;
for(int i = 1; i <= n; ++ i) cin >> w[i];
for(int i = 1; i <= n; ++ i)
{
l[i] = 1;
for(int j = 1; j < i; ++ j)
if(w[i] > w[j])
l[i] = max(l[i], l[j] + 1);
}
for(int i = n; i ; -- i)
{
r[i] = 1;
for(int j = n; j > i; -- j)
if(w[i] > w[j])
r[i] = max(r[i], r[j] + 1);
}
int res = 0;
for(int i = 1; i <= n; ++ i) res = max(res, l[i] + r[i] - 1);
cout << n - res << endl;;
}