1097. Deduplication on a Linked List (25)

简介: //思路:第一步用node将链表链接起来 存在v中 用ma判断是否重复 重复则pop 并push到re中#include #include #include #include #include using na...
//思路:第一步用node将链表链接起来 存在v中 用ma判断是否重复 重复则pop 并push到re中

#include <iostream>
#include <vector>
#include <map>
#include <cmath>
#include <algorithm>
using namespace std;

struct node {
    int adress, value, next;
} nodes[100001];

int main(){
    int s, n;
    vector<node> v, re;
    map<int, int> ma;

    cin >> s >> n;
    for (int i = 0; i < n; i++) {
        int a, b, c;
        cin >> a >> b >> c;
        nodes[a] = {a, b, c};
    }

    int head = s;
    while (head != -1) {
        v.push_back(nodes[head]);
        int t = abs(nodes[head].value);
        if (ma[t]) {
            v.pop_back();
            re.push_back(nodes[head]);
        }else{
            ma[t] = 1;
        }
        head = nodes[head].next;
    }


    if (v.size() > 0) {
        for (int i = 0; i < v.size(); i++) {
            if(i == 0) printf("%05d %d", v[i].adress, v[i].value);
            else printf(" %05d\n%05d %d", v[i].adress, v[i].adress, v[i].value);
        }
        cout << " -1\n";
    }
    if (re.size() > 0) {
        for (int i = 0; i < re.size(); i++) {
            if(i == 0) printf("%05d %d", re[i].adress, re[i].value);
            else printf(" %05d\n%05d %d", re[i].adress, re[i].adress, re[i].value);
        }
        cout << " -1\n";
    }

    return 0;
}


目录
相关文章
|
C++
【PAT甲级 - C++题解】1097 Deduplication on a Linked List
【PAT甲级 - C++题解】1097 Deduplication on a Linked List
79 0
【1097】Deduplication on a Linked List (25 分)
.思路 首先要明确有三类结点:未删除的结点、已删除的结点、无效结点。 (1)定义静态链表。
80 0
|
3月前
|
安全 Java
java线程之List集合并发安全问题及解决方案
java线程之List集合并发安全问题及解决方案
408 1
|
2月前
|
Java API Apache
怎么在在 Java 中对List进行分区
本文介绍了如何将列表拆分为给定大小的子列表。尽管标准Java集合API未直接支持此功能,但Guava和Apache Commons Collections提供了相关API。
|
2月前
|
运维 关系型数据库 Java
PolarDB产品使用问题之使用List或Range分区表时,Java代码是否需要进行改动
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
2月前
|
存储 安全 Java
详解Java中集合的List接口实现的ArrayList方法 | Set接口实现的HashSet方法
详解Java中集合的List接口实现的ArrayList方法 | Set接口实现的HashSet方法
|
3月前
|
Java API
使用 Java 来实现两个 List 的差集操作
使用 Java 来实现两个 List 的差集操作
54 3
|
2月前
|
存储 Java 索引
Java List接口实现原理与性能评估
Java List接口实现原理与性能评估
|
2月前
|
存储 缓存 安全
Java List操作详解及常用方法
Java List操作详解及常用方法
|
2月前
|
存储 Java 索引
Java List接口实现原理与性能评估
Java List接口实现原理与性能评估