Find Array Given Subset Sums LeetCode solution in C++
1class Solution {2public:3vector<int> recoverArray(int n, vector<int> &sums) {4sort(sums.begin(), sums.end());56vector<int> ans;7while (n--) {8int diff = sums[1] - sums[0];9unordered_map<int, int> freq;10vector<int> ss0, ss1;11bool on = false;12for (auto &x : sums)13if (!freq[x]) {14ss0.push_back(x);15freq[x + diff]++;16if (x == 0) on = true;17} else {18ss1.push_back(x);19freq[x]--;20}21if (on) {22ans.push_back(diff);23sums = ss0;24} else {25ans.push_back(-diff);26sums = ss1;27}28}29return ans;30}31};