LeetCode(350)Intersection of Two Arrays II

原创 2016年08月29日 21:21:17

题目

Given two arrays, write a function to compute their intersection.

Example:
Given nums1 = [1, 2, 2, 1]nums2 = [2, 2], return [2, 2].

Note:

  • Each element in the result should appear as many times as it shows in both arrays.
  • The result can be in any order.

Follow up:

  • What if the given array is already sorted? How would you optimize your algorithm?
  • What if nums1's size is small compared to nums2's size? Which algorithm is better?
  • What if elements of nums2 are stored on disk, and the memory is limited such that you cannot load all elements into the memory at once?

分析

求含重复元素的两数组交集,同样采用哈希的思想,求交集同时更新元素个数。

代码

#include <iostream>
#include <cstdlib>
#include <vector>
#include <map>

using namespace std;

class Solution {
public:
	vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {
		if (nums1.empty() || nums2.empty())
			return vector<int>();

		int l1 = nums1.size(), l2 = nums2.size();
		map<int, int> m;
		for (int i = 0; i < l1; ++i)
		{
			++m[nums1[i]];
		}//for

		vector<int> ret;
		for (int i = 0; i < l2; ++i)
		{
			if (m[nums2[i]] > 0)
			{
				ret.push_back(nums2[i]);
				--m[nums2[i]];
			}//if
		}//for

		return ret;
	}
};

int main()
{
	vector<int> v1 = { 1,2,2,1 }, v2 = { 2,2 };
	vector<int> ret = Solution().intersect(v1, v2);

	system("pause");
	return 0;
}
GitHub源码

版权声明:本文为博主原创文章,未经博主允许不得转载。

leetcode350~Intersection of Two Arrays II

Given two arrays, write a function to compute their intersection. Example: Given nums1 = [1, 2, 2...

【Leetcode】350. Intersection of Two Arrays II

方法一: 思路: 用flag标记是否nums2中的该元素已经是相交的元素,若不是才加入结果list,并置flag为1然后跳出内层循环继续判断nums1的下一个元素。 public class Solu...

<LeetCode OJ> 349 / 350 Intersection of Two Arrays(I / II)

Total Accepted: 3212 Total Submissions: 6814 Difficulty: Easy Given two arrays, write a functio...

[leetcode] 350. Intersection of Two Arrays II

Given two arrays, write a function to compute their intersection. Example: Given nums1 = [1, 2, ...

[LeetCode] 350. Intersection of Two Arrays II

[LeetCode] 350. Intersection of Two Arrays II 解题思路
  • zhao_tw
  • zhao_tw
  • 2016年10月20日 19:52
  • 101

Leetcode——350. Intersection of Two Arrays II

题目Given two arrays, write a function to compute their intersection.Example: Given nums1 = [1, 2, 2,...

350. Intersection of Two Arrays II

Given two arrays, write a function to compute their intersection. Example: Given nums1 = [1, 2, 2, ...

leetcode解题之349 & 350. Intersection of Two Arrays Java版(求数组交集))

350. Intersection of Two Arrays II leetcode解题之349. Intersection of Two Arrays & 350. Intersection ...

350.[LeetCode]Intersection of Two Arrays

算法效率分析如下:// m n // 如果我用二分排序,那么时间就是 (nlogn + mlogm + m + n) // 但是用java的哈希表的话,时间可以缩短到 O(m+n),因为哈希表的插入时...

LeetCode-349&350.Intersection of Two Arrays

https://leetcode.com/problems/intersection-of-two-arrays/ Given two arrays, write a function to co...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:LeetCode(350)Intersection of Two Arrays II
举报原因:
原因补充:

(最多只允许输入30个字)