# 找出一个数组中出现次数最大的数

```#include<stdio.h>

void FindMostTimesDigit(int *Src , int SrcLen)
{
int element , has = SrcLen;
int MaxNum , TempCount = 0 , MaxCount = 0;
int i , j , *result = new int[];

while(0 != has)
{
TempCount = 0;
element = Src[has - 1];
for(j = has - 1 ; j >= 0 ; --j)
{
// 如果找到，则计数加1，然后将数据和末尾交换
// 这也是为何要从末尾开始循环的理由
if(element == Src[j])
{
TempCount++;
// 把后面的数据移动到前面来
Src[j] = Src[has - 1];
has--;
}
}

if(TempCount > MaxCount)
{
MaxCount = TempCount;
MaxNum = 0;
result[MaxNum] = element;
}
else if(TempCount == MaxCount)
{
result[++MaxNum] = element;
}
}

printf("出现最多的次数：%d\n" , MaxCount);

for(i = 0 ; i <= MaxNum ; ++i)
{
printf("%d " , result[i]);
}
printf("\n");
}

int main()
{
int list[]={1,2,3,4,3,3,2,2,1,1,4,4,4,1,2};
int length =sizeof(list) / sizeof(int);
FindMostTimesDigit(list, length);

return 0;
}```

C++解法如下：

``` 1 #include<iostream>
2 #include<map>
3 #include<utility>
4 using namespace std;
5
6 int main()
7 {
8     map<int , int> word_count;
9     int number;
10     while(cin>>number)
11     {
12         pair<map<int , int>::iterator , bool> ret = word_count.insert(make_pair(number , 1));
13         if(!ret.second)
14             ++ret.first->second;
15     }
16
17     for(map<int , int>::iterator iter = word_count.begin() ; iter != word_count.end() ; ++iter)
18         cout<<(*iter).first<<"\t\t"
19             <<(*iter).second<<endl;
20
21     return 0;
22 }```

``` 1 #include<iostream>
2 #include<map>
3 #include<utility>
4 using namespace std;
5
6 int main()
7 {
8     map<int , int> word_count;
9     int number;
10
11     while(cin>>number)
12         ++word_count[number];
13
14     for(map<int , int>::iterator iter = word_count.begin() ; iter != word_count.end() ; ++iter)
15         cout<<(*iter).first<<"\t\t"
16             <<(*iter).second<<endl;
17
18     return 0;
19 }```

289 篇文章43 人订阅

0 条评论

## 相关文章

28650

14650

38170

### HYSBZ 3676 回文串 (回文树)

3676: [Apio2014]回文串 Time Limit: 20 Sec  Memory Limit: 128 MB Submit: 1680  Solve...

37170

### 3098: Hash Killer II

3098: Hash Killer II Time Limit: 5 Sec  Memory Limit: 128 MBSec  Special Judge S...

30360

### 如何使用Java Stream Collectors（归约器）？

Java 8引入了Stream API，它允许我们以声明的方式处理数据。此外，Stream还可以在不需要编写多线程代码的情况下使用多核架构。

9910

45450

### 提高 golang 的反射性能

golang 的反射很慢。这个和它的 api 设计有关。在 java 里面，我们一般使用反射都是这样来弄的。 ---- Field field = clazz....

56250

### 聊聊storm TridentTopology的构建

storm-core-1.2.2-sources.jar!/org/apache/storm/trident/TridentTopology.java

19830

### 聊聊storm TridentTopology的构建

storm-core-1.2.2-sources.jar!/org/apache/storm/trident/TridentTopology.java

12520