摄影个人网站模板,天津市做网站,网站 开发 合同,做淘客应该知道的网站文章目录 前言一、题目1、原题链接2、题目描述 二、解题报告1、思路分析2、时间复杂度3、代码详解 前言 本专栏文章为《代码随想录》书籍的刷题题解以及读书笔记#xff0c;如有侵权#xff0c;立即删除。 一、题目
1、原题链接 349. 两个数组的交集 2、题目描述 二、解题报… 文章目录 前言一、题目1、原题链接2、题目描述 二、解题报告1、思路分析2、时间复杂度3、代码详解 前言 本专栏文章为《代码随想录》书籍的刷题题解以及读书笔记如有侵权立即删除。 一、题目
1、原题链接 349. 两个数组的交集 2、题目描述 二、解题报告
1、思路分析
1由于题目中要求输出结果中的每个元素是唯一的。所以需要对结果进行去重而又需要快速判断是否是两数组的交集。我们可以使用 unordered_set其底层是哈希表存/取时间为O(1)既满足了存取效率同时也满足了去重的要求。 2我们可以首先将数组1中的元素去重放到哈希表中然后依次来遍历数组2中的元素如果其在哈希表中存在则为两数组的交集否则则不是。
2、时间复杂度
时间复杂度O(n)
3、代码详解
class Solution {
public:vectorint intersection(vectorint nums1, vectorint nums2) {unordered_setint res; //存放结果unordered_setint temp(nums1.begin(), nums1.end()); //将nums1中元素去重存放到temp中//遍历nums2for (int num : nums2) {//如果nums2中元素在temp中存在说明该元素是数组的交集if (temp.find(num) ! temp.end()) {res.insert(num);}}return vectorint(res.begin(), res.end()); //将结果类型强转为题目要求类型返回结果}
};