SDUT1480数据结构实验:哈希表(链地址法处理)
来源:互联网 发布:混沌遗传算法 编辑:程序博客网 时间:2024/06/04 00:58
数据结构实验:哈希表
Time Limit: 1000MS Memory Limit: 65536KB
Submit Statistic Discuss
Problem Description
在n个数中,找出出现次数最多那个数字,并且输出出现的次数。如果有多个结果,输出数字最小的那一个。
Input
单组数据,第一行数字n(1<=n<=100000)。
接下来有n个数字,每个数字不超过100000000
Output
出现次数最多的数字和次数。
Example Input
3
1 1 2
Example Output
1 2
Hint
Author
cz
PS:
通过不断地将大于100000的数,与100000取余,规整到一个个链表之中,以减少查找次数,提高查找效率。
比如 我现在有 2,100002,100000002,这三个数字,那么对100000取余后都为2,这时我们就有一个head[2]的链表,存储顺序为head[2] -> 2 -> 100002 -> 100000002;即将取余为2的数字本身,全部存放在head[2]的next值域中,层层叠加。
AC Code:
#include<bits/stdc++.h>using namespace std;struct node{ int data;//数据本身,key值; int cnt;//计数器; node *next;}*head[100101];int key,n,Max = 0, num = 0;//Max为当前最大数字出现的数量,num为最大数;void clean()//清空,初始化;{ for(int i=0; i<100000; i++) { head[i]=(struct node *)malloc(sizeof(struct node)); head[i]->next=NULL; }//初始化链表的头}void creat(int key){ int y = key %100000; node *p, *q; p = head[y] -> next; q = head[y]; while(p != NULL) { if(p -> data == key)//相同就+1; { p -> cnt++; if(Max < p -> cnt)//记录个数 { Max = p -> cnt; num = p-> data; } else if(Max == p-> cnt)//如果个数相同,比较大小,根据题意要小的 { if(num > p-> data) { num = p->data; } } break; } q = p; p = p -> next;//循环查找,到NULL若是还没有找到,执行下面的if } if(p == NULL)//没找到就说明还没有,那就直接赋值呗; { node *r; r = new node; r -> data = key; r -> cnt = 1; if(Max < r -> cnt)//赋值时也别忘了比较 { Max = r->cnt; num = r->data; } else if(Max == r -> cnt) { if(num > r -> data) { num = r -> data; } } q -> next = r;//接到链表后边 r -> next = NULL; }}int main(){ clean(); cin>>n; for(int i = 0; i < n; i++) { cin>>key; creat(key); } cout<<num<<" "<<Max<<endl; return 0;}
阅读全文
1 0
- SDUT1480数据结构实验:哈希表(链地址法处理)
- sdut1480数据结构试验——哈希表
- SDUTOJ 1480 数据结构实验:哈希表——链地址法处理冲突
- SDUT1480
- 链地址处理法构造简单哈希表
- 数据结构实验-查找-哈希表
- 数据结构实验:哈希表
- 数据结构实验:哈希表
- 数据结构实验:哈希表
- 数据结构实验:哈希表
- 数据结构实验:哈希表
- 数据结构实验:哈希表
- 数据结构实验:哈希表
- 数据结构实验:哈希表
- 数据结构实验:哈希表
- 数据结构实验:哈希表
- 数据结构实验:哈希表 SDUT
- 数据结构实验:哈希表
- solr6.6通过命令启动
- Git- gerrit操作手册 for 开发人员
- 在Java中如何实现方法中参数带默认值
- $.ajax()属性详解
- (人脸识别1-6)——Ubuntu16.04下如何同时安装TensorFlow和opencv
- SDUT1480数据结构实验:哈希表(链地址法处理)
- 学习之《数学之美》
- define和const
- oracle 常见函数
- 项目从TOMCAT迁移到weblogic报错:hibernate.QueryException org.hibernate.hql.ast.HqlToken
- SVN服务器和客户端的搭建
- 电子邮件协议、FTP 和 CGI 编程
- Centos 环境Docker离线安装方式
- 安卓游戏接入的时候遇到的找不到V4包的方法checkSelfPermission