leetcode

Solution 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;
6 for (const auto &p : adjacentPairs) {
7 um[p[0]].push_back(p[1]);
8 um[p[1]].push_back(p[0]);
9 }
11 int start = -1;
12 for (const auto &[k, v] : um) {
13 if (v.size() == 1) {
14 start = k;
15 break;
16 }
17 }
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 };