哈希表——set(查重) 港控/mmm° 2023-09-23 22:33 26阅读 0赞 [349. 两个数组的交集 - 力扣(LeetCode)][349. _ - _LeetCode] **由于unordered\_set底层实现为hash,故set内不会出现重复元素。** 虽然直接使用set 不仅占用空间比数组大,而且速度要比数组慢 但是,当数据十分分散时用set更好(比如1 2 3 100000000000000 1 90000000) ![da2a9cc17d694ae8a99f3c7d0407cc68.png][] **这道题的数据不大,可以用数组** **下面是unordered\_set的** ![eb6d617bcb7c48e2bfba6852653edf6c.png][] class Solution { public: vector<int> intersection(vector<int>& nums1, vector<int>& nums2) { unordered_set<int>result_set; int hash[10001]={0}; for(int i=0;i<nums1.size();i++) { hash[nums1[i]]=1; } for(int num:nums2) { if(hash[num]==1) result_set.insert(num); } return vector<int>(result_set.begin(),result_set.end()); }//因为set有查重功能,所以返回result_set.begin(),result_set.end() }; //因为用了result_set.begin(),result_set.end(),所以前面得加上vector //体会一下这两个for循环的区别与联系 不使用数组 **初始化** class Solution { public: vector<int> intersection(vector<int>& nums1, vector<int>& nums2) { unordered_set<int>result_set; unordered_set<int>nums_set(nums1.begin(),nums1.end());//必须初始化 for(auto num:nums2) { if(nums_set.find(num)!=nums_set.end()) { result_set.insert(num); } } return vector<int>(result_set.begin(),result_set.end()); }//set会查重,所以不会输出重复的 }; **下面这个题一定要看一下,因为使用了set中不会出现重复元素** [202. 快乐数 - 力扣(LeetCode)][202. _ - _LeetCode] ![7b306511e89b46d796954a1dc131962c.png][] class Solution { public: // 取数值各个位上的单数之和 int getSum(int n) { int sum = 0; while (n) { sum += (n % 10) * (n % 10); n /= 10; } return sum; } bool isHappy(int n) { unordered_set<int> set; while(1) { int sum = getSum(n); if (sum == 1) { return true; } // 如果这个sum曾经出现过,说明已经陷入了无限循环了,立刻return false if (set.find(sum) != set.end()) { return false; } else { set.insert(sum); } n = sum; } } }; [AcWing 4785. 奇偶 - AcWing][AcWing 4785. _ - AcWing] ![fe18aa128085425a933e9d5ead40703d.png][] #include <iostream> #include <cstring> #include <set> using namespace std; int main() { string str; cin >> str; set<char> hash(str.begin(), str.end()); if (hash.size() % 2) puts("odd"); else puts("even"); return 0; } [349. _ - _LeetCode]: https://leetcode.cn/problems/intersection-of-two-arrays/ [da2a9cc17d694ae8a99f3c7d0407cc68.png]: https://img-blog.csdnimg.cn/da2a9cc17d694ae8a99f3c7d0407cc68.png [eb6d617bcb7c48e2bfba6852653edf6c.png]: https://img-blog.csdnimg.cn/eb6d617bcb7c48e2bfba6852653edf6c.png [202. _ - _LeetCode]: https://leetcode.cn/problems/happy-number/ [7b306511e89b46d796954a1dc131962c.png]: https://img-blog.csdnimg.cn/7b306511e89b46d796954a1dc131962c.png [AcWing 4785. _ - AcWing]: https://www.acwing.com/activity/content/problem/content/7862/ [fe18aa128085425a933e9d5ead40703d.png]: https://img-blog.csdnimg.cn/fe18aa128085425a933e9d5ead40703d.png
相关 哈希表——set(查重) [349. 两个数组的交集 - 力扣(LeetCode)][349. _ - _LeetCode] 由于unordered\_set底层实现为hash,故set内不会出现重复 港控/mmm°/ 2023年09月23日 22:33/ 0 赞/ 27 阅读
相关 哈希表 上一篇博客:[静态链表的介绍及实现][Link 1] > 写在前面:大家好!我是`AC-fun`,我的昵称来自两个单词`Accepted`和`fun`。我是一个热爱ACM的 ╰半夏微凉°/ 2022年10月30日 07:24/ 0 赞/ 218 阅读
相关 554-大数据查重-哈希表应用 大数据查重-哈希应用 ![在这里插入图片描述][1907190930a64a228fc988644e075a14.png] 模拟问题1 vector中放原始的数据 谁借莪1个温暖的怀抱¢/ 2022年09月11日 06:19/ 0 赞/ 161 阅读
相关 哈希表 散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速 系统管理员/ 2022年06月10日 01:26/ 0 赞/ 268 阅读
相关 哈希表 我们知道,通过对数组进行直接寻址(Direct Addressing),可以在 O(1) 时间内访问数组中的任意元素。所以,如果存储空间允许,可以提供一个数组,为每个可能的关键 快来打我*/ 2022年06月05日 02:20/ 0 赞/ 372 阅读
相关 哈希表 1. 什么是哈希表 我们先来做个题(leetCode上387题) ![70][] public class Solution_387 { 朱雀/ 2022年05月16日 10:11/ 0 赞/ 306 阅读
相关 哈希表 哈希表是种数据结构,它可以提供快速的插入操作和查找操作。第一次接触哈希表时,它的优点多得让人难以置信。不论哈希表中有多少数据,插入和删除(有时包括侧除)只需要接近常量的时间即0 今天药忘吃喽~/ 2022年02月01日 14:36/ 0 赞/ 418 阅读
相关 【哈希表】 char FirstNotRepeatingChar(char pString) { // invalid input if(! r囧r小猫/ 2022年01月06日 11:33/ 0 赞/ 339 阅读
相关 哈希表 一、简介 如果所有的键都是小整数,那么我们可以用一个数组来实现无序的符号表,将键作为数组的索引i而数组中i(键)处储存的就是对应的值。 这样就可以快速地访问任意键的值, 旧城等待,/ 2021年12月22日 01:21/ 0 赞/ 415 阅读
相关 哈希表 【一】哈希表 > 他通过把关键码值映射到表中的一个位置来访问记录,以加快查找的速度。这个映射函数就是散列函数。 ![watermark_type_ZmFuZ3poZW5na 傷城~/ 2021年08月11日 17:13/ 0 赞/ 568 阅读
还没有评论,来说两句吧...