1. 程式人生 > >如何找出陣列中重複次數最多的數

如何找出陣列中重複次數最多的數

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;
    }