使用map做数组与链表去重
#include<iostream>
#include<map>
using namespace std; class node{
public:
node():value(),next(NULL){}
~node(){}
int value;
node* next;
};///be careful this ; node* createlist(int a[],int n)
{
node* startnode = new node[n];
node* ret = startnode;
for(int i = ;i<n;i++)
{
startnode[i].value = a[i];
if(i<n-)
startnode[i].next = startnode + i + ;
}
cout<<endl;
return ret;
} void arraydeletedoublebymap()
{
int a[] = {,,,,,,,,,,,,,,};
// node * t = createlist(a,sizeof(a)/sizeof(a[0]));
map<int,int> m;
for(int i = ;i<sizeof(a)/sizeof(a[]);i++)
{
m.insert(pair<int,int>(a[i],));
} for(map<int,int>::iterator it = m.begin();it != m.end();it++)
{cout<<it->first;} ///其实输出的结果也是排序过的
} node* deletenode(node * t)
{
node* ret = t->next;
//delete t;
return ret;
} void helper(node * head)
{
map<int,int> m;
node* ret = head;
m.insert(pair<int,int>(head->value,));
node* pre = head;
head = head->next;
while(head)
{
cout<<head->value<<endl;
pair<map<int,int>::iterator,bool> ret = m.insert(pair<int,int>(head->value,));
if(ret.second == false)
{
pre->next = deletenode(head);
head = pre->next;
}else{
pre = head;
head = head->next;
}
} while(ret)
{
cout<<ret->value<<" ";
ret = ret->next;
}
} int main()
{
int a[] = {,,,,,,,,,,,,,,};
node * t = createlist(a,sizeof(a)/sizeof(a[]));
helper(t);
}
使用map做数组与链表去重的更多相关文章
- Set、Map及数组去重
https://cloud.tencent.com/developer/article/1437254 https://blog.csdn.net/weixin_34247299/article/de ...
- 【数组模拟的链表or复杂模拟】PAT-L2-002. 链表去重
L2-002. 链表去重 给定一个带整数键值的单链表L,本题要求你编写程序,删除那些键值的绝对值有重复的结点.即对任意键值K,只有键值或其绝对值等于K的第一个结点可以被保留.同时,所有被删除的结点必须 ...
- L2-002. 链表去重(数组模拟)
L2-002. 链表去重 因为数值比较小,所以直接用数组来模拟 #include<cstdio> #include<cstring> #include<iostream& ...
- L2-002. 链表去重(map结构体,精彩的代码)
链表去重 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定一个带整数键值的单链表L,本题要求你编写程序,删除那些键值的绝对值 ...
- 数组和链表--Java学习笔记(一)
版权声明: 本文由Faye_Zuo发布于http://www.cnblogs.com/zuofeiyi/, 本文可以被全部的转载或者部分使用,但请注明出处. 我是一个全职妈妈,两年前在上海一家人力资源 ...
- L2-2. 链表去重
L2-2. 链表去重 时间限制300 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者陈越给定一个带整数键值的单链表L,本题要求你编写程序,删除那些键值的绝对值有重复的 ...
- C - Boxes in a Line 数组模拟链表
You have n boxes in a line on the table numbered 1 . . . n from left to right. Your task is to simul ...
- JAVA 基本数据结构--数组、链表、ArrayList、Linkedlist、hashmap、hashtab等
概要 线性表是一种线性结构,它是具有相同类型的n(n≥0)个数据元素组成的有限序列.本章先介绍线性表的几个基本组成部分:数组.单向链表.双向链表:随后给出双向链表的C.C++和Java三种语言的实现. ...
- 团体程序设计天梯赛L2-002 链表去重 2017-03-22 18:12 25人阅读 评论(0) 收藏
L2-002. 链表去重 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定一个带整数键值的单链表L,本题要求你编写程序,删除 ...
随机推荐
- Tomcat Java.OutOfMemoryError : PermGen Space异常
背景:前些日子更新公司多年前一个旧平台发布到Tomcat上之后,频繁收到网站许多模块无法正常使用的反汇. 测试过程中发现平台发布一段时间后,访问相关网页出现如下500页面 解决方案:PermGen s ...
- ps之雪碧图制作
图片拖入后 一般取同行同列最高最宽 自动在所选目录生成 打开: 修改 四次请求有点多啊. 打开 css sprite 自动生成坐标地址. 不过我们要把它排远一点 OK了. 我们生成以后: 坐标地址就可 ...
- Java基础-流程控制(04)
在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.也就是说程序的流程对运行结果有直接的影响.所以,我们必须清楚每条语句的执行流程.而且,很多时候我们要通过控制语句的执行顺序来实现我 ...
- spring MVC 环境搭建
绿色版Spring MVC(单纯的springMVC) 一.导包,为了获取请求数据多添加一个包 二.web.xml配置 <?xml version="1.0" encodin ...
- LeetCode 80. Remove Duplicates from Sorted Array II (从有序序列里移除重复项之二)
Follow up for "Remove Duplicates":What if duplicates are allowed at most twice? For exampl ...
- LeetCode 31. Next Permutation (下一个排列)
Implement next permutation, which rearranges numbers into the lexicographically next greater permuta ...
- NotePad++ 正则表达式替换 高级用法 [转]
转自:http://blog.csdn.net/gdp12315_gu/article/details/51730584 在我们处理文件时,很多时候会用到查找与替换.当我们想将文件中某一部分替换替换文 ...
- Java 常用正则表达式,Java正则表达式,Java身份证校验,最新手机号码正则表达式
Java 常用正则表达式,Java正则表达式,Java身份证校验,最新手机号码校验正则表达式 ============================== ©Copyright 蕃薯耀 2017年11 ...
- spring boot 自己输出json数据
@RequestMapping("/json")public void json(HttpServletResponse response, Pager pager, TruckF ...
- 开源纯C#工控网关+组态软件(五)从网关到人机界面
一. 引子 之前都在讲网关,不少网友关注如何实现界面.想了解下位机变量变化,是怎样一步步触发人机界面动画的. 这个步步触发,实质上是变量组(Group)的批量数据变化(DataChange)事件, ...