L2-002 链表去重(链表+模拟)
题目链接
https://pintia.cn/problem-sets/994805046380707840/problems/994805072641245184
视频讲解
https://www.bilibili.com/video/BV1y3411n7sK
思路
我们用一个map
记录地址映射,在键的位置记录当前地址,值的位置记录下一个地址的位置,然后我们用一个 vis
数组标记我们的值的绝对值是否被加入了 win
链表,如果没有加入那么我们就将其加入 loser
链表,这样的话就将链表去重了,最后实现一个打印操作即可,注意这里我们可以通过scanf
的格式化输出%05d
来方便我们补前缀0
代码
#include<bits/stdc++.h>
using namespace std;const int N = 1e6+10;
int n,s;
int a[N];
bool vis[N];map<int,int> mark;void print(vector<int> & V){int p,np;for(int i = 0,l = V.size();i < l; ++i) {p = V[i];if(i < l) np = V[i + 1];if(i == l - 1) printf("%05d %d -1\n",p,a[p]);else printf("%05d %d %05d\n",p,a[p],np);}
}int main()
{vector<int> win,loser;scanf("%d %d",&s,&n);int p,k,nex,np;for(int i = 1;i <= n; ++i) {scanf("%d %d %d",&p,&k,&nex);mark[p] = nex;a[p] = k;}p = s;while(p != -1) {if(vis[abs(a[p])]) loser.push_back(p);else win.push_back(p);vis[abs(a[p])] = true;p = mark[p];}print(win);print(loser); return 0;
}
L2-002 链表去重(链表+模拟)相关推荐
- 【区块反转】【链表合并】【反转链表】【链表元素分类】【链表去重】【重排链表】
目录 说明: 1110 区块反转 输入格式: 输出格式: 输入样例: 输出样例: 1105 链表合并 输入格式: 输出格式: 输入样例: 输出样例: 1025 反转链表 输入格式: 输出格式: 输入样 ...
- 【CCCC】L2-002 链表去重 (25分),,把一个链表拆成两个
problem L2-002 链表去重 (25分) 给定一个带整数键值的链表 L,你需要把其中绝对值重复的键值结点删掉.即对每个键值 K,只有第一个绝对值等于 K 的结点被保留.同时,所有被删除的结点 ...
- L2-002. 链表去重
L2-002. 链表去重 题目链接:https://www.patest.cn/contests/gplt/L2-002 代码如下: 1 #include<cstdio> 2 #inclu ...
- Algorithm:C++语言实现之链表相关算法(链表相加、链表的部分翻转、链表划分、链表去重、重复元素全部删除)
Algorithm:C++语言实现之链表相关算法(链表相加.链表的部分翻转.链表划分.链表去重.重复元素全部删除) 目录 一.链表 1.1.链表相加 1.2.链表相加 2.1.链表的部分翻转 2.2. ...
- L2-002 链表去重-团体程序设计天梯赛GPLT
题目来源:团体程序设计天梯赛-练习集 题目地址:L2-002 链表去重 题目大意 将链表数据域的值相同(包含绝对值相同)的节点去掉,然后将去掉的节点又重新组成一条链表,最后输出去重后的链表和被去掉的节 ...
- L2-002 链表去重 (25 分) 船新方法
L2-002 链表去重 (25 分) 给定一个带整数键值的链表 L,你需要把其中绝对值重复的键值结点删掉.即对每个键值 K,只有第一个绝对值等于 K 的结点被保留.同时,所有被删除的结点须被保存在另一 ...
- l2-002 链表去重 (未解决)
L2-002. 链表去重 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定一个带整数键值的单链表L,本题要求你编写程序,删除 ...
- 7-93 链表去重 (25 分)
7-93 链表去重 (25 分) 给定一个带整数键值的链表 L,你需要把其中绝对值重复的键值结点删掉.即对每个键值 K,只有第一个绝对值等于 K 的结点被保留.同时,所有被删除的结点须被保存在另一个链 ...
- 链表去重 保留第一个元素
#include<iostream> using namespace std;struct Node {int nValue;Node *pNext; };void CreateList( ...
最新文章
- 北大清华合力打造通用人工智能实验班
- 推荐一位我的好朋友,8年码农,前鹅厂工程师!
- 京东某程序员哀叹:在大厂快待废了,出去面试问自己kafka,竟然全忘了!
- oracle归档日志参数reopen=30,Oracle 归档日志 -- CSDN 比较全的说明文档
- bashrc文件中环境变量配置错误,导致linux命令无法正常使用的解决方案
- 电脑知识:关于电脑的十大误区,原来是这样!
- Python函数积累
- uboot源码——命令体系
- SpringBoot2 整合Nacos组件,环境搭建和入门案例详解
- loss值多少才算收敛_你了解TDS值是多少才是合格的吗?
- mpvue 中使用 iconfont
- Linux chapter 6
- 计算机打印服务总是自动关闭,打印机服务怎么使用 打印机服务自动关闭怎么解决...
- Chrome谷歌浏览器无法自动同步的解决办法
- pythonobject转int_在Python中将元组转换为int
- jQuery推箱子小游戏
- 使用 React 和 Vite 使用 Tauri 构建番茄钟
- 如何高效地阅读论文:三遍阅读法
- iOS 给APP评分无法连接到App Store解决方法
- 算法(并查集--合并集合)