Write a program to check an array is a subset of another array or not.
Example:
Input: mainArray={1,2,3,2,5,6,2}, subArray={2,2,2}
Output: true
Approach
C++
#include <bits/stdc++.h>using namespace std;bool isSubset(vector<int> &mainArray, vector<int> &subArray){int i = 0, j = 0;int m = mainArray.size();int n = subArray.size();//sort both the arrayssort(mainArray.begin(), mainArray.end());sort(subArray.begin(), subArray.end());//apply two poniter approachwhile (i < n && j < m){if (mainArray[j] == subArray[i]){i++;j++;}else if (mainArray[j] < subArray[i])j++;else if (mainArray[j] > subArray[i])return false;}if (i < n)return false;elsereturn true;}int main(){vector<int> mainArray = {1, 2, 3, 2, 5, 6, 2};vector<int> subArray = {2, 2, 2};if (isSubset(mainArray, subArray)){cout << "true";}elsecout << "false";return 0;}
No comments:
Post a Comment