【发布时间】:2019-10-10 08:49:19
【问题描述】:
我创建了一个简单的程序,该程序使用无序映射来保持数组中元素的计数。我想知道下面程序的时间复杂度。
它只是 O(n) 时间吗?
在无序地图上完成的操作需要多少时间?
(即在地图中查找一个键,如果它存在,则将其值递增 1,如果不将键初始化为 1)
这是在恒定时间内完成的,还是在一些对数或线性时间内完成的?
如果不是固定时间,请建议我一个更好的方法。
#include <unordered_map>
#include<iostream>
int main()
{
int n;
std::cin >> n;
int arr[100];
for(int i=0;i<n;i++)
std::cin >> arr[i];
std::unordered_map<int, int> dp;
for(int i=0; i<n; i++)
{
if (dp.find(arr[i]) != dp.end())
dp[arr[i]] ++;
else
dp[arr[i]] = 1;
}
}
【问题讨论】:
标签: c++ hashmap unordered-map