unordered_map可类比于Python中的字典。其实现使用了哈希表,可以以O(1)的时间复杂度访问到对应元素,但缺点是有较高的额外空间复杂度。与之对应,STL中的map对应的数据结构是红黑树,红黑树内的数据时有序的,在红黑树上查找的时间复杂度是O(logN),相对于unordered_map的查询速度有所下降,但额外空间开销减小。
class Solution {
public:
bool hasGroupsSizeX(vector<int>& deck) {
unordered_map<int,int> count; //第一个是key的类型,第二个是key对应的value的类型
int res=0;
for(int i:deck)
{
count[i]++;
}
for(auto i:count)
{ //__gcd(x, y)求两个数的最大公约数, algorithm 库中
res=__gcd(i.second,res); //second是迭代器指向对应的值
}
return res>1;
}
};