力扣hot100——哈希部分总结

①unordered_map 

基于哈希表实现 用于存储键值对

使用哈希函数来进行查找,非常快速


插入操作例:

myMap["Alice"] = 25;       // 直接赋值
myMap.insert({"Bob", 30}); // 使用 insert

访问元素例:

cout << myMap["Alice"];    // 输出 25
cout << myMap.at("Bob");   // 输出 30

注意点:

1.如果键不存在,myMap[key] 会​​自动插入​​该键,并赋予默认值(如 int 默认是 0)。

2.myMap.at(key) 会​​抛出异常​​(std::out_of_range)如果键不存在。

使用哈希表的好处:降低查找的时间复杂度至O(1),而暴力遍历的时间复杂度为O(n)。

②unordered_set

128. 最长连续序列 - 力扣(LeetCode)

unordered_set表示set是用哈希表实现,因此查找,插入,删除的时间复杂度O(1)。set.count()可以判断一个数在不在set中。

③字符串的哈希

49. 字母异位词分组 - 力扣(LeetCode)

一组中所有的异位词(值)都可以对应到同一个排好序的键中。
 

        for(const auto& pair : groups){

            ans.push_back(pair.second);

        }

由于group作为unordered_map,不能直接使用01234类的索引而是需要提供键,所以应该使用这种方式来遍历 const auto& pair:groups。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值