leetcodeSolution to some Leetcode problems written in C++ |
git clone git://git.dimitrijedobrota.com/leetcode.git |
Log | Files | Refs | README | LICENSE |
1743.cpp (744B)
0 class Solution { 1 public: 2 vector<int> restoreArray(const vector<vector<int>> &adjacentPairs) { 3 const int n = adjacentPairs.size() + 1; 4 unordered_map<int, vector<int>> um; 5 6 for (const auto &p : adjacentPairs) { 7 um[p[0]].push_back(p[1]); 8 um[p[1]].push_back(p[0]); 9 } 10 11 int start = -1; 12 for (const auto &[k, v] : um) { 13 if (v.size() == 1) { 14 start = k; 15 break; 16 } 17 } 18 19 vector<int> res(n); 20 res[0] = start, res[1] = um[start][0]; 21 for (int i = 2; i < n; i++) { 22 res[i] = um[res[i - 1]][0] != res[i - 2] ? um[res[i - 1]][0] : um[res[i - 1]][1]; 23 } 24 return res; 25 } 26 };