PAT1097 Deduplication on a Linked List

pta 2019乙级春赛 矩阵行平移 矩阵行平移 给定一个 n×n 的整数矩阵。对任一给定的正整数 k<n,我们将矩阵的奇数行的元素整体向右依次平移 1、……、k、1、……、k、…… 个位置,平移空出的位置用整数 x 补。你需要计算出结果矩阵的每一列元素的和。 输入格式: 输入第一行给出 3 个正整数:n(<100)、k(<n)、x(<100),分别如题面所述。 接下来 n 行,每行给出 n 个不超过 100 ... 阅读详情
题目链接:

http://www.nowcoder.com/pat/5/problem/4321

题目大意:

要求找出一个线性表中的结点数据绝对值重复的结点,仅保留第一个,其余的按地址连接的顺序去除,并且连接成另一个线性表。

分析:

水题,用数组下标模拟地址。遍历去重时,利用set不能放重复元素的特性进行判断,如果不能插入结点数据,证明是重复的,模拟链表删除一个结点。

代码:
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<set>
using namespace std;
struct Node
{
    int _val;
    int _nextAdr;
};
Node list[100005];
struct Mark
{
    int _curAdr;
    int _val;
    int _nextAdr;
};
Mark delNode[100005];
int main()
{
    int staAdr;
    int n;
    set<int> s;
    scanf("%d%d",&staAdr,&n);
    int adr;
    while (n--)
    {
        scanf("%d",&adr);
        scanf("%d%d",&list[adr]._val,&list[adr]._nextAdr);
    }
    int curAdr = staAdr;
    int val;
    int size;
    int preAdr = 0;
    int cnt = 0;
    while (curAdr != -1)
    {
        val = list[curAdr]._val;
        val = val > 0 ? val : -val;
        size = s.size();
        s.insert(val);
        if (size == s.size())
        {
            list[preAdr]._nextAdr = list[curAdr]._nextAdr;
            delNode[cnt]._curAdr = curAdr;
            delNode[cnt]._val = list[curAdr]._val;
            delNode[cnt]._nextAdr = -1;
            if (cnt > 0)
            {
                delNode[cnt - 1]._nextAdr = curAdr;
            }
            cnt++;
        }
        else
        {
            preAdr = curAdr;
        }
        curAdr = list[curAdr]._nextAdr;
    }
    curAdr = staAdr;
    while (list[curAdr]._nextAdr != -1)
    {
        printf("%05d %d %05d\n", curAdr, list[curAdr]._val, list[curAdr]._nextAdr);
        curAdr = list[curAdr]._nextAdr;
    }
    //curAdr = list[curAdr]._nextAdr;
    printf("%05d %d -1\n", curAdr, list[curAdr]._val);
    for (int i = 0; i < cnt; i++)
    {
        printf("%05d %d",delNode[i]._curAdr,delNode[i]._val);
        if (delNode[i]._nextAdr == -1)
        {
            printf(" -1\n");
        }
        else
        {
            printf(" %05d\n",delNode[i]._nextAdr);
        }
    }
    return 0;
}
SpringBoot+Vue+kkFileView实现文档管理(文档上传、下载、在线预览) 上面在使用OpenOffice实现doc、excel、ppt等文档的管理和预览。除此之外可用kkFileView实现包括且更多文档的预览。 阅读详情

相关推荐

FPGA DMA IP核使用指南

数据传输:支持从源地址到目标地址的数据传输。中断管理:提供中断信号,便于CPU处理传输完成事件。传输控制:支持传输大小、方向和暂停/恢复控制。

weixin_66634995的博客 2428

PAT甲级真题1097 链表重复数据删除(简单解法)

给定一个单链表 LL,链表上的每个节点都存有一个键值,你应该删掉其中拥有重复键值绝对值的节点。 也就是说,对于每个值 KK,只保留键值或键值绝对值为 KK 的第一个节点。 同时,被删掉的节点也应保存在一个单独的链表中。 例如,给定 LL 为 21→-15→-15→-7→15,则删除重复数据后的链表为 21→-15→-7,已删除链表为 -15→15。 输入格式 第一行首先包含头节点地址,然后包含节点总数 NN。 节点地址用一个 55 位非负整数表示(可能有前导 00),NULL 用 −1−1 表示。 接下来

qq_43738331的博客 392

去面试游戏测试工程师,面试官看着我的简历呆住了

!我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。欢迎大家点击下方名片免费领取,千万不要错过哦。

MXB1220的博客 7327

1097 矩阵行平移 – PAT乙级真题

给定一个n×n的整数矩阵。对任一给定的正整数k

柳婼 の blog 1236

DMA学习笔记

DMA(direct memory access,直接内存访问),是一种避开CPU,可以直接对外设和内存进行访问的技术,可以实现外设与内存、内存之间、外设之间的数据的访问和搬移。

weixin_46220498的博客 3111

逆变器专题(9)-基于dq坐标系的逆变器解耦控制建模与实时仿真分析

本文深入探讨了基于dq坐标系的逆变器解耦控制建模与实时仿真分析。通过生动的比喻和详细的数学推导,阐述了如何通过坐标变换和前馈补偿实现d轴与q轴的独立控制,从而提升系统动态性能与稳定性。文章还介绍了在MATLAB/Simulink中搭建仿真模型、分析动态响应与稳定性的方法,并展望了硬件在环(HIL)实时仿真的高级验证手段,为新能源并网与电机驱动领域的工程师提供了宝贵的实践指南。

gold的博客 547

PAT-A1097-Deduplication on a Linked List-附题解

目录1.题目阐述2.题目思路3.题解代码 PS:刷题时的代码,基本没有改过,测试点都通过了。放上来总结一下思路与方法。 1.题目阐述 分裂链表,求出绝对值去重后的链表数据以及重复数据构成的链表 2.题目思路 这里强行全程用链表很复杂,我这里是先构造静态链表,再作节点循环分离出两个vector表来分别存储绝对值去重后的数据以及重复数据构成的数据,注意也要记录他们的地址数据用来最后输出的。 其他要注意的就是输出格式把。 3.题解代码 我的代码如下: #include<cstdio> #include

ShuKIno的博客 288

数据中心光模块升级实录:从200G QSFP56到400G QSFP-DD的踩坑指南

本文记录了数据中心从200G QSFP56升级至400G QSFP-DD光模块的完整实战经验。文章深入剖析了升级过程中面临的兼容性、链路预算、布线、散热与功耗管理等核心挑战,并提供了具体的解决方案与排坑指南,为高速网络升级提供了宝贵的实践参考。

butter的博客 479

PAT (Basic Level) Practice (中文)1097 矩阵行平移 (20 分)

PAT乙级 1097

太空没有鹿的博客 555

汇川Easy系列PLC系统PID指令编程应用(增量型)

增量式PIDS7-1200/1500增量式PID(输出归一化、支持PWM输出)_西门子1200pid算法公式-优快云博客文章浏览阅读1k次。本文介绍了S7-1200/1500 PLC中增量式PID算法的应用,包括输出归一化和PWM输出。通过详细解析,阐述了PID输出如何限制在0.0-1.0之间,并且如何将PID输出与PWM占空比关联,适用于温度等控制场景。

RXXW_Dor的博客 1422

后台管理系统-7-vue3之引入配置文件baseURL

mock=false,本地模拟。mock=true,线上模拟。baseURL+url=实际请求的URL。get请求param参数,post请求data参数。

qq_20466211的博客 207

PAT 甲级 1097  Deduplication on a Linked List

1097 Deduplication on a Linked List (25 point(s)) Given a singly linked list L with integer keys, you are supposed to remove the nodes with duplicated absolute values of the keys. That is, for each v...

漫浸天空的雨色的备忘录~ 705

模型实战(16)之StrongSort (OSNET)配合YOLOv5、v7、v8 实现多目标跟踪详解

StrongSort (OSNET)配合YOLOv5、v7、v8 实现多目标跟踪详解

yohnyang的博客 1770

PAT甲级 1097 Deduplication on a Linked List(25)

PAT甲级1097详解附AC代码

2301_79601095的博客 1058

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

PAT 1097 Deduplication on a Linked List

1097Deduplication on a Linked List(链表删除)(25分) Given a singly linked listLwith integer keys, you are supposed to remove the nodes with duplicated(重复的...

Do Better 227

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

PAT 1097 Deduplication on a Linked List

Given a singly linked list L with integer keys, you are supposed to remove the nodes with duplicated absolute values of the keys. That is, for each value K, only the first node of which the value or a

u012610237的博客 313

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

pat 1097 Deduplication on a Linked List

Given a singly linked list L with integer keys, you are supposed to remove the nodes with duplicated absolute values of the keys. That is, for each value K, only the first node of which the value or a

suichen1的专栏 414

[PAT A1097]Deduplication on a Linked List

[PAT A1097]Deduplication on a Linked List 题目描述 Given a singly linked list L with integer keys, you are supposed to remove the nodes with duplicated absolute values of the keys. That is, for each val...

欢迎来到我的编程小屋 528

PAT A1097Deduplication on a Linked List (测试点2)

测试点2应该是重复数字的链表为空,此时不需要输出-1。 而如果第一个非重复链表为空,需要输出-1。 #include<iostream> #include <algorithm> using namespace std; #define MAX 100010 bool isExit[MAX] = {false}; struct node { int add; int key; int next; int flag; int in; }; bool cmp(node a, n

qq_40737596的博客 539

【ACM】PAT. A1097 Deduplication on a Linked List【链表】

/**********************3stone*************************** Problem: PAT.1097. Deduplication on a Linked List (25) Author:3stone Time:2017/3/6 思路:【order:记录点的序号】 0、遍历链表,给order赋值 1、用map&lt;int, bool&gt;记录这个值

三个石头 603

【PAT】A1097 Deduplication on a Linked List【链表】【散列】

Given a singly linked list L with integer keys, you are supposed to remove the nodes with duplicated absolute values of the keys. That is, for each value K, only the first node of which the value or a...

elegant coder 503

PAT A1097 Deduplication on a Linked List

题目难度:一颗半星 题目大意:给定一个链表,需要去除其中绝对值相同的点,最后输出剩下的节点,以及被去除的节点。 题目坑点:经过前面几个题目的坑,这个已经没有那么容易坑我了,该考虑的都考虑了,继续刷!!! 代码如下: #include<iostream> #include<stdlib.h> #include<queue> #include<stack&gt...

weixin_42302528的博客 128

PAT-ADVANCED1097——Deduplication on a Linked List

我的PAT-ADVANCED代码仓:https://github.com/617076674/PAT-ADVANCED 原题链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805369774129152 题目描述: 题目翻译: 1097 去除链表中的重复元素 给定带有整数键的单链表L,你需要删除具有重复...

清风阁 322
上一篇: 位运算及其应用
下一篇: PAT1098 Insertion or Heap Sort
_IanXiao
博客等级 码龄12年 84粉丝 241原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值