題目:

解答:
class Solution {
public:
vector<vector<int>> findDifference(vector<int>& nums1, vector<int>& nums2) {
#define OFFSET 1000
#define MAX_SIZE 2001
int i = 0;
vector<int> s1(MAX_SIZE, 0);
vector<int> s2(MAX_SIZE, 0);
for (i = 0; i < nums1.size(); i++) {
s1[nums1[i] + OFFSET] += 1;
}
for (i = 0; i < nums2.size(); i++) {
s2[nums2[i] + OFFSET] += 1;
}
vector<int> t;
vector<vector<int>> r;
for (i = 0; i < nums1.size(); i++) {
if (s2[nums1[i] + OFFSET] == 0) {
s2[nums1[i] + OFFSET] += 1;
t.push_back(nums1[i]);
}
}
r.push_back(t);
t.clear();
for (i = 0; i < nums2.size(); i++) {
if (s1[nums2[i] + OFFSET] == 0) {
s1[nums2[i] + OFFSET] += 1;
t.push_back(nums2[i]);
}
}
r.push_back(t);
return r;
}
};