【题解】链表练习
题面
前言
其实就是一个模板题……
正文
云落一开始算错复杂度了,挤破脑袋都没想明白怎么不用链表实现(甚至手搓一棵平衡树)
后来尝试性的使用动态数组 vector
嗯~很成功
最后发现是自己复杂度算错了,大悲
(看来有必要恶补一下小学数学了……)
代码
#include<iostream>
#include<vector>
#define int long long
using namespace std;
const int maxn=2e4+10;
int n,m;
vector<int> g;
signed main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n>>m;
for(int i=0;i<n;i++){
int x;
cin>>x;
g.push_back(x);
}
while(m--){
int op;
cin>>op;
if(op==1){
int x;
cin>>x;
g.erase(g.begin()+x-1);
}else{
int x,y;
cin>>x>>y;
g.insert(g.begin()+x,y);
}
}
for(int i=0;i<g.size();i++){
cout<<g[i]<<' ';
}
return 0;
}
后记
至于链表怎么实现,自己手搓吧
相信在座的各位神犇都会灵活运用 nxt
数组捏!
完结撒花!