寻找最先出现且出现一次的元素

    数组非常长,如何找到第一个只出现一次的数字,说明算法复杂度。

    这道题采用STL 中的unorder_map实现。其中时间复杂度2*n,相当于过了两边数据,第一遍用于建立hashtable,第二遍查找第一次出现且hashtable中的value == 1的元素。


int find_first_apperence(int *arr)
{
        unordered_map<int, int> u_map;
        int i;
        for(i=0; i<MAXLENGTH; ++i)
        {   
                u_map[arr[i]]++;
        }   

        for(i=0; i<MAXLENGTH; ++i)
        {   
                if(u_map[arr[i]] == 1)
                {   
                        printf("%d\n", arr[i]);
                }   
        }   

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值