如何找出数组中重复次数最多的数

 我来答
折柳成萌
高粉答主

2017-10-20 · 繁杂信息太多,你要学会辨别
知道顶级答主
回答量:4.4万
采纳率:96%
帮助的人:5993万
展开全部
比如b[i]=num,表示i出现了num次。
实现的代码也很简单。
//初始化数组b全部为0
for(i=0; i<n; i++)
{
b[a[i]]++;

}
这样就可以了,直接找数组b中的最大值,就是出现次数,下表为出现的值。
你是唯一dz444
2019-06-21
知道答主
回答量:5
采纳率:0%
帮助的人:3340
展开全部

用c++里的map可以很快记录每个元素的个数,然后迭代一次就可以找到了,具体看代码吧!(我的例子里传入的是一个vector型数组,也可以传入普通数组)

int find_max(vector<int> ar) {
    int l = ar.size();
    int ans = 0;
    map<int,int> mp;
    for(int i = 0; i < l; i++){
        mp[ar[i]] ++;
    }
    map<int,int>::iterator it;
    for(it=mp.begin();it!=mp.end();it++){
        ans = max(ans,(it->second));
    }
    return ans;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
无星我2983
2017-10-20 · TA获得超过367个赞
知道小有建树答主
回答量:335
采纳率:50%
帮助的人:216万
展开全部
假设数组已排好序,时间复杂度为O(n);
//若数组未排序,此方法要先排序,用快排O(nlogn),总时间复杂度为O(nlogn)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式