【题解】链表练习

题面

题目传送门

前言

其实就是一个模板题……

正文

云落一开始算错复杂度了,挤破脑袋都没想明白怎么不用链表实现(甚至手搓一棵平衡树

后来尝试性的使用动态数组 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 数组捏!

完结撒花!

posted @ 2024-12-12 22:56  sunxuhetai  阅读(18)  评论(0)    收藏  举报