首页 > 其他分享 >《牛客》-D小红数组操作 (链表)

《牛客》-D小红数组操作 (链表)

时间:2024-03-13 19:29:41浏览次数:20  
标签:-- tt 小红 cin 链表 牛客 int op

思路:采用链表进行动态维护即可

我们采用map集合来模拟链表结构(用结构体也是可以的)

就是输出需要一点点思考.

ACcode:

#include <bits/stdc++.h>
using namespace std;
#define int long long
map<int,int>l,r;
int q,x,y,op,k;
void solve() {
	cin>>q;
	while(q--) {
		cin>>op>>x;
		if(op==1) {//插入 
			cin>>y;
			r[x]=r[y];
			l[x]=y;
			l[r[y]]=x;
			r[y]=x;
			k++;
		} else {//删除 
			l[r[x]]=l[x];
			r[l[x]]=r[x];
			k--;
		}
	}
	cout<<k<<"\n";
	for(int i=r[0]; k; i=r[i],k--)cout<<i<<" ";
}
signed main() {
	ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
	int tt=1;
	//cin>>tt;
	while(tt--)	{
		solve();
	}
	return 0;
}

over

标签:--,tt,小红,cin,链表,牛客,int,op
From: https://blog.csdn.net/m0_74969835/article/details/136688749

相关文章

  • 142. 环形链表 IIc
    /***Definitionforsingly-linkedlist.*structListNode{*intval;*structListNode*next;*};*/structListNode*detectCycle(structListNode*head){structListNode*slow=head,*fast=head;while(fast&&fast->next......
  • 开题顺序(暴搜&dfs)---牛客小白月赛69-C
    #include<bits/stdc++.h>usingnamespacestd;#defineintlonglong#defineendl'\n'#defineinf0x3f3f3f3fconstintN=2e5+5;intn,t,p;inta[N],b[N],c[N],x[N],y[N];intres,vis[N];voiddfs(ints,intm){ res=max(res,s); for(inti=1;i......
  • 旅游(最小生成树&二分)---牛客小白月赛69-D
    #include<bits/stdc++.h>usingnamespacestd;#defineintlonglong#defineendl'\n'#defineinf0x3f3f3f3fconstintN=4e4+5;intn,m,c;intp[N];structnode{ intx,y,w; booloperator<(constnode&t)const{ returnw<t.w; ......
  • JS 链表 - 笔记
    代码:classListNode{/***@constructor*@param{number}val*@param{ListNode}next*/constructor(val,next){this.val=(val===undefined?0:val);this.next=(next===undefined?null:next);......
  • K 个一组翻转链表
    题目:structListNode{intval;ListNode*next;ListNode():val(0),next(nullptr){}ListNode(int_val):val(_val),next(nullptr){}ListNode(int_val,ListNode*_next):val(_val),next(_next){}};classSolution{public:ListNod......
  • 力扣148排序链表--复习归并和快速排序
    递归的归并排序归并排序主要流程是拆分--排序--合并--排序--合并//拆分voidmergeSort(vector<int>&nums,intstart,intend){ if(start>=end)return; intmid=start+(end-start)/2; mergeSort(nums,start,mid); mergeSort(nums,mid+1,end); //最后一层排......
  • 数据结构——线性表2(链表)
    【基本知识】链表是一种常见的数据结构,用于存储和组织数据。它由一系列节点组成,每个节点包含两部分:数据(data)和指向下一个节点的指针(*next)。链表中的节点可以在内存中不连续地分布,通过指针将它们连接起来。链表有多种类型,其中最常见的是单向链表和双向链表。在单向链表中,......
  • 链表基础知识详解
    引言在计算机科学中,数据结构是存储、组织数据的方式。而链表,作为一种基础而强大的数据结构,因其独特的特性,在多种算法和应用场景中拥有不可替代的地位。什么是链表,为什么要使用链表链表(LinkedList)是一种线性表,但与数组不同的是,链表中的元素在内存中并不是连续放置的。每......
  • 动态链表学习笔记:查找,插入与删除
    目录情境引入:一、数据的查找1.要求:2.思路:3.程序:4.运行:二、数据的插入 1.要求:2.思路: 3.程序: 4.运行:三、数据的删除1.要求:2.思路:3.程序:4.运行四、调整与小结:优化:运行情境引入:        学习了动态链表的输入输出后,若还需要对其进行进一步的操作,......
  • 【牛客】-E 小红勇闯地下城
    一语点醒雾中人:看出最短路问题(dijkstra)ACocde:#include<bits/stdc++.h>usingnamespacestd;constintN=1000;#defineintlonglongintdx[5]={0,-1,0,1,0};intdy[5]={0,0,1,0,-1};structE{ intw; intx,y; booloperator<(constE&u)c......