[刷题] 349 Intersection of Two Arrays
查找问题
- 查找有无(只有键)
- 元素'a'是否存在
- set(集合)
- 查找对应关系(键值对应)
- 元素'a'出现了几次
- map(字典)
- set和map的底层实现是红黑树
- 常见操作
- insert()
- find()
- erase()
- change(map):改变某个键对应的值
要求
- 给定两个数组nums,求两个数组的公共元素
- 输出结果中每个元素唯一
- 不考虑输出结果的顺序
举例
- nums1=[1,2,2,1]
- nums2=[2,2]
- 结果:[2]
实现
- 将公共元素放入公共的set中
1 class Solution{ 2 public: 3 vector<int> intersection(vector<int>& nums1, vector<int>& nums2){ 4 5 set<int> record; 6 for(int i = 0 ; i < nums1.size() ; i ++ ) 7 record.insert( nums1[i] ); 8 9 set<int> resultSet; 10 for( int i = 0 ; i < nums2.size() ; i ++ ) 11 if( record.find(nums2[i]) != record.end()) 12 resultSet.insert(nums2[i]); 13 14 vector<int> resultVector; 15 for( set<int>::iterator iter = resultSet.begin() ; iter != resultSet.end() ; iter ++) 16 resultVector.push_back( *iter ); 17 18 return resultVector; 19 } 20 };
- 简单写法
1 class Solution{ 2 public: 3 vector<int> intersection(vector<int>& nums1, vector<int>& nums2){ 4 5 set<int> record( nums1.begin(), nums1.end()); 6 7 set<int> resultSet; 8 for( int i = 0 ; i < nums2.size() ; i ++ ) 9 if( record.find(nums2[i]) != record.end()) 10 resultSet.insert(nums2[i]); 11 12 return vector<int> resultVector(resultSet.begin(),resultSet.end()); 13 14 } 15 };
参考
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· 程序员常用高效实用工具推荐,办公效率提升利器!
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 【译】WinForms:分析一下(我用 Visual Basic 写的)