LeetCode 求众数 C++

通过使用C++的关联容器map,存储数组中每个数字及其出现次数。首次遇到数字时插入并设置计数为1,后续遇到则递增计数。最后遍历map找出出现次数大于众数的元素。
摘要由CSDN通过智能技术生成

 利用关联容器map,<key,value>中令数组中的数字为key,数字出现的次数为value

当数字在map中未出现过时,将数字压入,并将其value赋值1,如果出现过,则将其value递增

最后遍历map,将value值大于众数的数据输出

代码如下:

class Solution {
public:
    int majorityElement(vector<int>& nums) {
        auto len =nums.size();
        int count=len/2;
        map<int,int> m;
        int tmp=0;
        for(int i=0;i<len;i++)
        {
            auto ret=m.insert({nums[i],1});  //insert返回一个迭代器,pair类型,第一个数据为迭代器指向指定元素位置,
                                            //第二个为插入是否成功的bool值
            if(!ret.second)                 //ret保存insert返回的值,是一个pair,
            {
                ++ret.first->second;  // 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值