给定一个集合,查找集合中一共多多少种不同的元素第一行输入一个n,表示集合元素的个数接下来输入n的整数输入集合中一共有多少个不同的值尽量使用高效算法

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/06 05:56:29

给定一个集合,查找集合中一共多多少种不同的元素第一行输入一个n,表示集合元素的个数接下来输入n的整数输入集合中一共有多少个不同的值尽量使用高效算法
给定一个集合,查找集合中一共多多少种不同的元素
第一行输入一个n,表示集合元素的个数
接下来输入n的整数
输入集合中一共有多少个不同的值
尽量使用高效算法

给定一个集合,查找集合中一共多多少种不同的元素第一行输入一个n,表示集合元素的个数接下来输入n的整数输入集合中一共有多少个不同的值尽量使用高效算法
楼上其实用的是hash的思想,不过人为加了很多条件哦,
我来给个基于hash的简单实现吧~
/* 程序思路:
* 将输入的n个数字散列到哈希表中,建立哈希表的过程中,
* 查找有没有重复数字,如果有,则总个数值不变
* 否则总个数+1
* */
#include
#include
#define MAX 8192
struct hash_node {
int data;
struct hash_node *next;
};
int hash_num(int num)
{
static struct hash_node table[MAX];
struct hash_node *q = NULL;
struct hash_node *p = NULL;
int index;
index = abs(num) % MAX;
p = &table[index];
while (p->next != NULL) {
if (p->next->data == num) {
q = malloc(sizeof(struct hash_node));
q->data = num;
q->next = p->next->next;
p->next->next = q;
return 1;
}
p = p->next;
}
if (p->next == NULL) {
p->next = malloc(sizeof(struct hash_node));
p->next->data = num;
p->next->next = NULL;
return 0;
}
}
int main()
{
int n = 0;
int i = 0;
int num = 0;
int cnt = 0;
printf("Please input n:");
scanf("%d",&n);
printf("Please input n nums:\n");
for (i = 0; i < n; ++i) {
scanf("%d",&num);
if (hash_num(num) == 0)
cnt++;
}
printf("%d",cnt);
return 0;
}

给定一个集合,查找集合中一共多多少种不同的元素第一行输入一个n,表示集合元素的个数接下来输入n的整数输入集合中一共有多少个不同的值尽量使用高效算法 给定一个集合,查找元素是否在集合中出现.求C语言算法 求帮忙弄个C课程设计,只要程序就行,急用!给定一个集合,查找元素是否在集合中出现每个测试用例由多行组成,第一行是两个整数n和m,两个范围在1到100000之间,自第二行起一共有n+m整数,其中前 能帮忙改一个查找单词的小程序吗题目:设集合S由若干单词(英文)组成,给定字符串K,在S中查找与K最佳匹配的结果.最佳匹配的结果定义为:与K有最长共同前缀的字符串.使用文件保存初始 给定一个集合A,|A|=n,求在A上有多少个不同的等价关系? 排列组合:给定n个相同的集合,每个集合中有m个元素,从每个集合中任意选一元素,这些元素的组合数是多少例如:n = 2, m = 2 ,假设集合S = {a, b} 时,一共有 aa,ab,bb,这3种不同的组合.求通式和过程 关于映射概念的问题这句话,不懂:映射允许A中的不同元素在B中有相同的像,但是不要求B中的元素都有原像,即A中元素在B中像的集合是B的子集.原像的概念不是说如果给定一个从集合A到集合B “对于一个给定的集合,集合中的元素是互异的”(第2页), 在N中取数 PASCAL由键盘输入N,B={1,2,...,N}为连续N个整数的集合,取B中若干不同的整数,使这些整数之和为给定的M,共有多少种不同的取法? 一个集合由8个不同元素组成,这个集合中含3个元素的子集有多少个? 一个集合由8个不同元素组成,这个集合中包含3个元素的子集有多少个? 对于给定的一个集合,集合中的元素是互易的.谁能帮我讲一下这句话啊 为什么正确答案是B,不是说一个给定集合中的是互不相同的吗?给定集合中的元素是互不相同的 这两句话如何理解?①集合是一个“整体”.②组成集合的对象必须是“确定”的,也就是说,给定一个集合,那么任何一个元素在不在这个集合中就确定了.这两句话我一点也不明白,能不能解释一 从集合{PQRS}与集合{ 012…9}中各任取2不同元素排成一排,每排中字母Q和数字0至多出现一个的不同排法有 集合? 集合 集合