从数组中找到元素出现次数最多的元素

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从数组中找到元素出现次数最多的元素相关的知识,希望对你有一定的参考价值。

都是WA,不知道是有那个点考虑错了。我自己程序运行的时候都没有问题的。判题系统就是不给过,求答案。

如果数字限定范围,范围小的话,建议用两个数组来用,这样速度非常快。 如:int[]a=1,1,2,3,3,4,4
第二个数组就有5个长度 int[]b=new int[5];
for(int i=0;i<a.length;i++)
b[a[i]]++;

这样你在算出b数组中哪个最数最大,那么他的下标就是a数组中出现 最多次数的数了
参考技术A

初始化的时候

int n=0;

追问

这个有影响吗?后面输入一个值对n赋值了。

追答

想法是没错的,但是编译器是不允许的,编译的时候并没有输入,在计算机看来就是一个空指针,所以不行

追问

这个不是指针,而且编译器通过了。我是WA是结果错误。

追答

老铁,你自己说的"判题系统就是不给过",我就专心看判断了,算了,不看了不看了

追问

我还能说什么,你自己都没搞清楚吧。我有用指针了吗?没有吧!n赋不赋初值有必要吗,执行到第5行都会从键盘得到一个值啊。而且我是WA,不是程序语法有问题,是输出的答案有问题。有时候真的希望你能认真看题目,不要水可以吗?还有,我有求着你看吗?搞得好像没你就不行一样,我还有老师的好吗?只是大晚上不方便问而已。

找出一个数组中出现次数最多的那个元素。

找出一个数组中出现次数最多的那个元素。

输入描述:
第一行输入一个整数n(不大于20) 第二行输入n个整数,
输出描述:
找出n个整数中出现次数最多的那个整数,如果有多个,输出最先出现的那个

#include <stdio.h>
#include <stdlib.h>
int main() {
	int n;
	long long array[100000]={0};
	long long index[100000]={0};
	long sum=0,z=0;
	int i=0;

	scanf("%d",&n); 
	for(i=0;i<n;i++){
		scanf("%lld",&array[i]);
		index[array[i]]++;
		if(sum<index[array[i]]){
			sum = index[array[i]];
			z = array[i];
		}
	}
	printf("%lld\\n",z); 
	return 0;
}

以上是关于从数组中找到元素出现次数最多的元素的主要内容,如果未能解决你的问题,请参考以下文章

数组中求出现两次的元素

C语言找出一个数组中出现次数最多的那个元素

如何找出数组中出现次数超过长度一半的元素

numpy如何查找数组中个数最多的元素

如何获取数组中出现次数最多的字符串?

如何求出数组中出现次数最多的数字(C#实现)