02. Construct list using given q XOR queries
The problem can be found at the following link: Question Link
My Approach
Initialize an empty vector
ansand add0to it. Also, initialize a variablexorrto0.Iterate through each query in
queries.If the first element of the query
x[0]is1, updatexorrby XORing it withx[1].If the first element of the query
x[0]is0, appendxorr XOR x[1]toans.
After processing all queries, XOR each element in
answith the final value ofxorr.Sort the
ansvector.Return the sorted
ansvector.
Time and Auxiliary Space Complexity
Time Complexity:
O(n log n), where n is the number of elements inansdue to the sorting step. Each query operation (XOR and append) takes constant time.Auxiliary Space Complexity:
O(n), where n is the number of elements in theansvector.
Code (C++)
class Solution {
public:
vector<int> constructList(int q, vector<vector<int>> &queries) {
vector<int>ans;
ans.push_back(0);
int xorr=0;
for(auto x:queries){
if(x[0]) xorr^=x[1];
else ans.push_back(xorr^x[1]);
}
for(int &x:ans) x^=xorr;
sort(begin(ans), end(ans));
return ans;
}
};Contribution and Support
For discussions, questions, or doubts related to this solution, please visit our discussion section. We welcome your input and aim to foster a collaborative learning environment.
If you find this solution helpful, consider supporting us by giving a ⭐ star to the getlost01/gfg-potd repository.
Last updated
Was this helpful?