less than 1 minute read

<-E 2032> Two Out of Three

// Method 1
class Solution {
public:
    vector<int> twoOutOfThree(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3) {
        int check[101] = {0};
        for(auto i : nums1) {
            if(check[i] == 0)
                check[i] = 1;
        }
        for(auto i : nums2) {
            if(check[i] == 1)
                check[i] = -1;
            if(check[i] == 0)
                check[i] = 2;
        }
        for(auto i : nums3) {
            if(check[i] == 2)
                check[i] = -1;
            if(check[i] == 1)
                check[i] = -1;
        }
        vector<int> ans;
        for(int i = 0;i != 101; i++) {
            if(check[i] == -1)
                ans.push_back(i);
        }
        return ans;
    }
};

// Method 2
class Solution {
public:
    vector<int> twoOutOfThree(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3) {
        vector<int> count1(101);
        vector<int> count2(101);
        vector<int> count3(101);        
        for (int x: nums1) count1[x] = 1;
        for (int x: nums2) count2[x] = 1;
        for (int x: nums3) count3[x] = 1;
        vector<int> ans;
        for (int i = 1; i <= 100; ++i) {
            if (count1[i] + count2[i] + count3[i] >= 2) {
                ans.push_back(i);
            }
        }
        return ans;
    }
};