pta l2-2(链表去重)
题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805072641245184
题意:给定一个链表,要求删除其中键值绝对值重复的结点然后输出,并将删除的结点组织成链表,也输出。
思路:刚开始我是用创建静态链表的思路来做,没出现过的加入链表1,出现过的加入链表2,虽然有些麻烦,但应该是可行的,可样例始终过不了,找了一晚上错误是在不知道错在哪,就放弃了。在网上看了另一种做法,十分简单,用结构体,a[i].key表示地址i处的键值,a[i].nxt表示下一个地址,b数组用来存放重复结点的地址,vis数组用来标记是否出现过,
AC代码:
#include<bits/stdc++.h>
using namespace std; const int maxn=; struct node{
int key,nxt;
}a[maxn]; int b[maxn],vis[],n,m,v,ct,t1,t2,t3; int main(){
scanf("%d%d",&m,&n);
for(int i=;i<n;++i){
scanf("%d%d%d",&t1,&t2,&t3);
a[t1].key=t2,a[t1].nxt=t3;
}
vis[abs(a[m].key)]=;
printf("%05d %d",m,a[m].key);
while(){
m=a[m].nxt;
if(m==-){
printf(" -1\n");
break;
}
if(!vis[abs(a[m].key)]){
vis[abs(a[m].key)]=;
printf(" %05d\n%05d %d",m,m,a[m].key);
}
else
b[ct++]=m;
}
if(ct>){
printf("%05d %d",b[],a[b[]].key);
for(int i=;i<ct;++i)
printf(" %05d\n%05d %d",b[i],b[i],a[b[i]].key);
printf(" -1\n");
}
return ;
}
pta l2-2(链表去重)的更多相关文章
- PTA L2-002 链表去重 团体程序设计天梯赛-练习集
L2-002 链表去重(25 分) 给定一个带整数键值的链表 L,你需要把其中绝对值重复的键值结点删掉.即对每个键值 K,只有第一个绝对值等于 K 的结点被保留.同时,所有被删除的结点须被保存在另 ...
- 天梯 L2 链表去重
L2-002 链表去重 (25 分) 给定一个带整数键值的链表 L,你需要把其中绝对值重复的键值结点删掉.即对每个键值 K,只有第一个绝对值等于 K 的结点被保留.同时,所有被删除的结点须被保存在另一 ...
- pta L2-002 链表去重 +散列表知识小普及+二进制取反补码运算
题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805072641245184: 废话:今天忙着学习新知识了,没怎 ...
- L2-002 链表去重 (25 分)
L2-002 链表去重 (25 分) 给定一个带整数键值的链表 L,你需要把其中绝对值重复的键值结点删掉.即对每个键值 K,只有第一个绝对值等于 K 的结点被保留.同时,所有被删除的结点须被保存在 ...
- 团体程序设计天梯赛-练习集L2-002. 链表去重
L2-002. 链表去重 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定一个带整数键值的单链表L,本题要求你编写程序,删除 ...
- L2-002. 链表去重
L2-002. 链表去重 题目链接:https://www.patest.cn/contests/gplt/L2-002 这题因为结点地址只有四位数,所以可以直接开一个10000的数组模拟内存就好了. ...
- L2-2. 链表去重
L2-2. 链表去重 时间限制300 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者陈越给定一个带整数键值的单链表L,本题要求你编写程序,删除那些键值的绝对值有重复的 ...
- C# 链表去重 List 一维 二维 分别使用 Distinct() GroupBy() 方法
分别使用List中Distinct(),GroupBy()实现链表的去重. 1.先上效果: 一维链表中分别有元素“aa”,"bb",'aa','aa',"cc" ...
- [leetcode]83. Remove Duplicates from Sorted List有序链表去重
Given a sorted linked list, delete all duplicates such that each element appear only once. Example 1 ...
随机推荐
- hdfs 如何实现退役节点快速下线(也就是退役节点上的数据块快速迁移)speed up decommission blocks removal
以下是选择复制源节点的代码 代码总结: A=datanode上要复制block的Queue size与 target datanode没被选出之前待处理复制工作数之和. 1. 优先选择退役中的节点,因 ...
- centos限制用户使用部分命令
参考网:https://access.redhat.com/solutions/65822# 环境 Red Hat Enterprise Linux 5 Red Hat Enterprise Linu ...
- django form 的内置字段类型
定义的form类如下: from django import forms from django.forms import widgets class AddHouseForm(forms.Form) ...
- 解决idea启动项目报错:Unable to open debugger port(127.0.0.1:60157):java.net.SocketException"socket closed
原因分析: 1.可能是端口被占用导致,其他软件占用了tomcat的端口. 2.可能是在打开Tomcat的情况下关闭了Eclipse.idea等开发工具,或是Eclipse.idea非正常关闭(如电脑. ...
- APP-8.1-百度语音应用
1.百度语音登录地址 http://yuyin.baidu.com/ 2.控制台创建应用 3.生成签名 3.1Postman软件应用 APP-8.2-Postman应用 3.2Postman执行 UR ...
- 页面中onclick事件引号问题
第一种:html中onclick调用事件 <p id="txt" onclick="changeSize()">加括弧的changeSize()&l ...
- Xcode 8 注释快捷键失效
sudo /usr/libexec/xpccachectl 重启
- creator.d.ts 的错误
//export class PhysicsCollider{ export class PhysicsCollider extends Collider{ ==================检查代 ...
- JavaScript 从定义到执行,你应该知道的那些事
JavaScript从定义到执行,JS引擎在实现层做了很多初始化工作,因此在学习JS引擎工作机制之前,我们需要引入几个相关的概念:执行环境栈.执行环境.全局对象.变量对象.活动对象.作用域和作用域链等 ...
- easyUi onLoadSuccess:、onChange这些事件不能嵌套使用!!!!
easyUi onLoadSuccess:.onChange这些事件不能嵌套使用!!!!