本来估摸复杂度为O(nlogn),但似乎用stl后更高?
代码:
//#pragma GCC optimize()//手动Ox优化 #include<bits/stdc++.h> using namespace std; const int N=1e5+1; vector<int>s; int siz; int main(){ int n; scanf("%d",&n); for(int i=1;i<=n;++i){ int x; scanf("%d",&x); int l=0,r=siz-1,ans=-1; while(l<=r){ int mid=(l+r)>>1; if(s[mid]<=x){ ans=mid; l=mid+1; continue; } r=mid-1; } s.insert(s.begin()+ans+1,x); siz++; } for(int i=0;i<siz;++i){ printf("%d ",s[i]); } return 0; } /** * ┏┓ ┏┓+ + * ┏┛┻━━━┛┻┓ + + * ┃ ┃ * ┃ ━ ┃ ++ + + + * ████━████+ * ◥██◤ ◥██◤ + * ┃ ┻ ┃ * ┃ ┃ + + * ┗━┓ ┏━┛ * ┃ ┃ + + + +Code is far away from * ┃ ┃ + bug with the animal protecting * ┃ ┗━━━┓ 神兽保佑,代码无bug * ┃ ┣┓ * ┃ ┏┛ * ┗┓┓┏━┳┓┏┛ + + + + * ┃┫┫ ┃┫┫ * ┗┻┛ ┗┻┛+ + + + */
非常简单的实现没有什么好讲的,主要是链表的插入具有易实现的特点,才弄出的