标题 leetcode力扣刷题打卡
题目:2032. 至少在两个数组中出现的值
描述:给你三个整数数组 nums1、nums2 和 nums3 ,请你构造并返回一个 与这三个数组都不同的 数组,且由 至少 在 两个 数组中出现的所有值组成。数组中的元素可以按 任意 顺序排列
原代码##
public:
vector<int> twoOutOfThree(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3) {
set<int>s;
for (int i = 0; i < nums1.size(); ++i) {
for (int j = 0; j < nums2.size(); ++j) {
if (nums3.size() != 0) {
for (int k = 0; k < nums3.size(); ++k) {
if (nums1[i] == nums2[j] || nums1[i] == nums3[k] || nums2[j] == nums3[k]) {
if (nums1[i] == nums2[j]) s.insert(nums1[i]);
if (nums2[j] == nums3[k]) s.insert(nums2[j]);
if (nums1[i] == nums3[k]) s.insert(nums3[k]);
}
}
} else {
if (nums1[i] == nums2[j]) {
s.insert(nums2[j]);
cout << nums2[j];
}
}
}
}
vector<int>v(s.begin(), s.end());
return v;
}
};
思路:
1、直接暴力枚举;
2、set去重后再放入vector当中;
总结:
1、进行三次if判断然后插入的时候,每一个都不能少,否则会报错。