350. Intersection of Two Arrays II
Problem:
Given two arrays, write a function to compute their intersection.
Example 1:
Input: nums1 = [1,2,2,1], nums2 = [2,2]
Output: [2]
Example 2:
Input: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
Output: [9,4]
Note:
- Each element in the result must be unique.
- The result can be in any order.
思路:
Solution (C++):
vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {
if (nums1.empty() || nums2.empty()) return vector<int>{};
int m = nums1.size(), n = nums2.size(), inter = 0;
vector<int> res;
if (m <= n) {
for (int i = 0; i < m; ++i) {
for (int j = 0; j < n-inter; ++j) {
if (nums1[i] == nums2[j]) {
res.push_back(nums1[i]);
swap(nums2[j], nums2[n-1-inter]);
inter++;
break;
}
}
}
} else {
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m-inter; ++j) {
if (nums2[i] == nums1[j]) {
res.push_back(nums2[i]);
swap(nums1[j], nums1[m-1-inter]);
inter++;
break;
}
}
}
}
return res;
}
性能:
Runtime: 16 ms Memory Usage: 6.6 MB
思路:
Solution (C++):
性能:
Runtime: ms Memory Usage: MB
相关链接如下:
知乎:littledy
GitHub主页:https://github.com/littledy
github.io:https://littledy.github.io/
欢迎关注个人微信公众号:小邓杂谈,扫描下方二维码即可
作者:littledy
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。