当前位置:首页 > 题解目录 > 正文内容

【题解】链表操作

亿万年的星光4年前 (2022-01-19)题解目录3594

【题目描述】

给定一个N个数的数组,M次操作,每次操作为下列操作之一。求最后的数组。

操作1:在第X个数之后插入一个数Y。

操作2:删除第X个数。

操作3:对区间[XY]进行排序。

操作4:对区间[XY]进行翻转。

操作5:删除区间[XY]中值为Z的数。

【输入描述】

第一行两个整数N,M(N,M≤100000)含义见试题描述。

第二行N个整数,表示原来的数组。

接下来M行,每行第一个数OPT,表示操作类型。

对于操作1,接下来两个数X,Y,含义见题面描述,保证0≤X≤当前数的个数,若X=0,表示在数组开头插入。

对于操作2,接下来一个数X,含义见题面描述,保证1≤X≤当前数的个数。

对于操作3,接下来两个数X,Y,含义见题面描述,保证1≤X≤Y≤当前数的个数,保证操作3不超过10个。

对于操作4,接下来两个数X,Y,含义见题面描述,保证1≤X≤Y≤当前数的个数,保证操作4不超过10个。

对于操作5,接下来三个数X,Y,Z,含义见题面描述,保证1≤X≤Y≤当前数的个数,保证操作5不超过10个。

【输出描述】

输出若干个数,表示最后的数组。

【样例输入】

5 5
1 4 3 2 5
3 2 4
4 4 5
5 2 3 2
5 2 3 1
1 0 9


【样例输出】

9 1 3 5 4


【题目分析】

  1. 不建议使用链表操作,建议使用vector来操作


【参考答案】

#include<bits/stdc++.h>
using namespace std;
int n,m,c,opt,x,y,z;
vector<int> v;
void fun()
{
	for(int i=x-1;i<y;i++)
	{
		if(v[i]==z) v.erase(v.begin()+i);
	}
}
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		cin>>c;
		v.push_back(c);
	}
	for(int i=1;i<=m;i++)
	{
		cin>>opt;
		if(opt==1)
		{
			cin>>x>>y;
			v.insert(v.begin()+x,y);
		}
		if(opt==2)
		{
			cin>>x;
			v.erase(v.begin()+x);
		}
		if(opt==3)
		{
			cin>>x>>y;
			sort(v.begin()+x-1,v.begin()+y);
		}
		if(opt==4)
		{
			cin>>x>>y;
			reverse(v.begin()+x-1,v.begin()+y);
		}
		if(opt==5)
		{
			cin>>x>>y>>z;
			fun();
		}
	}
	for(int i=0;i<v.size();i++) cout<<v[i]<<" ";
	return 0;
}


    扫描二维码推送至手机访问。

    版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。

    分享给朋友:

    相关文章

    字符串反连接

    【题目描述】写一函数,使输入的一个字符串按反序存放,在主函数中输入并输出反序后的字符串(不包含空格)。【输入描述】一行字符【输出描述】逆序后的字符串【样例输入】123456abcdef【样例输出】fe...

    【题解】苯小猴

    【题目描述】笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!这种方法的具体描述如下:假设maxn是单词中出现次数最...

    文具订购(NOI online入门组)

    【题目描述】小明的班上共有n元班费,同学们准备使用班费集体购买3种物品。圆规,每个7元。笔,每支4元。笔记本,每本3元。小明负责订购文具,设圆规、笔、笔记本的订购数量为a,b,c,他订购的原则依次如下...

    【题解】家庭问题

    【题目描述】有n个人,编号为1,2,……n,另外还知道存在K个关系。一个关系的表达为二元组(α,β)形式,表示α,β为同一家庭的成员。当n,k和k个关系给出之后,求出其中共有多少个家庭、最大的家庭中有...

    【题解】移动路线

    【题目描述】X桌子上有一个m行n列的方格矩阵,将每个方格用坐标表示,行坐标从下到上依次递增,列坐标从左至右依次递增,左下角方格的坐标为(1,1),则右上角方格的坐标为(m,n)。小明是个调皮的孩子,一...

    【题解】单词接龙

    【题目描述】单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重...