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

来源:互联网 发布:vb下拉菜单怎么设置 编辑:程序博客网 时间:2024/05/17 14:26

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

    这道题采用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]);                }           }   }



0 0
原创粉丝点击