热门

最新

红包

立Flag

投票

同城

我的

发布
m0_73787047
爱编程的小芒果
1 年前
truem0_73787047

榜单上终于有我名了

CSDN App 扫码分享
分享
6
2
打赏
  • 复制链接
  • 举报
下一条:
#include<iostream>using namespace std;const int maxn=3e5+5;int num[maxn],l[maxn],r[maxn],f[maxn];int main(){int n;cin>>n;for(int i=1;i<=n;i++){//初始化 l[i]=r[i]=f[i]=0;}for(int i=1;i<=n;i++){cin>>num[i];//如果当前值还未出现,则标记第一次出现的位置 if(l[num[i]]==0) l[num[i]]=i;//不断更新最右边出现的位置 r[num[i]]=i;}int sum=n;int lst=0;//标记上一个出现的数字 int ans=0;//记录最长连续上升序列的长度 for(int i=1;i<=n;i++){if(l[i]==0) {//统计出现的不同数字个数 sum--;continue; }if(l[i]<=r[lst]) f[i]=1;else f[i]=f[lst]+1;ans=max(ans,f[i]);lst=i; }cout<<sum-ans<<endl;return 0;}
立即登录