从数组中找到元素出现次数最多的元素
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;
}
以上是关于从数组中找到元素出现次数最多的元素的主要内容,如果未能解决你的问题,请参考以下文章