如何找出陣列中重複次數最多的數
阿新 • • 發佈:2019-01-28
eg
陣列{1,1,2,2,3,4,4,4,4,5,5,5,6,6}
元素1出現的次數為2, 元素2出現的次數為2,元素3出現的次數為1,元素4出現的次數為4,元素5出現的次數為3,元素6出現的次數為2
所以輸出應該為元素4.
程式碼
int GetMaxNum(int *arr,int len,int& num)
{
int index = arr[0];
int i;
for(i = 0;i<len;i++){
if(arr[i]>index)
{
index = arr[i];
num = i;
}
}
return index;
}
方法二使用map對映表
bool findMostFrequentInArray(int *a,int size,int &val){
if(size == 0)
{
return false;
}
map<int,int> m;
for(int i = 0;i<size;i++){
if(++m[a[i]]>=m[val])
{
val = a[i];
}
return true;
}