Leetcode刷题:
有一些查找的题目,如单词频率统计,移除重复节点等等题目。
总结来说就是,如果你现在需要干的事和前面的数据有关的话,最容易想到的方法就是,一次从头遍历,查找判断,这样的话,时间开销会很大。
但是可以选择使用哈希表,哈希表比其他容器访问速度要快很多,虽然空间消耗大,但也是值得的。
Map:
1.声明:
map<T1, T2> mp;
2.插入
m.insert(pair<T1, T2>(A, B));
m.insert(make_pair(A, B));
m.insert(map<T1, T2>::value_type(A, B));
m[A] = B;
3.查找和统计
(1)查找
find(key); //查找key是否存在,若存在,返回该键的元素的迭代器;若不存在,返回mp.end();
map<int, int>::iterator pos = mp.find(3);
if (pos != m.end())
{
cout << "找到了元素 key = " << (*pos).first << " value = " << (*pos).second << endl;
}
else
{
cout << "未找到元素" << endl;
}
-
count(key);//统计key的元素个数
本文介绍了如何使用哈希表解决LeetCode中涉及查找和统计的题目,以提高效率。哈希表提供快速访问,尽管空间消耗较大,但在处理与历史数据相关的问题时,其优势明显。通过Map的声明、插入、查找和统计操作实例,详细讲解了哈希表在算法题中的应用。
458

被折叠的 条评论
为什么被折叠?



