#include<bits/stdc++.h> using namespace std; int b[350]; int main(){ int n,x;cin>>n; int ans=0,d1=0,a[300],f[300],d2=1; //重复 剩余 memset(b,0,sizeof(b)); for(int i=1;i<=n;++i){ scanf("%d",&x); if(b[x]==0) a[d2++]=x; b[x]=1; } for(int i=1;i<=300;++i) if(b[i])++d1; ans+=(n-d1); for(int i=1;i<=d1;++i){ f[i]=1; for(int j=1;j<i;++j){ if(a[i]>a[j]) f[i]=max(f[j]+1,f[i]); } } int d=-1; for(int i=1;i<=d1;++i) d=max(d,f[i]); cout<<ans+d1-d<<endl; } |
Double click to view unformatted code.