leetcodeSolution to some Leetcode problems written in C++ |
git clone git://git.dimitrijedobrota.com/leetcode.git |
Log | Files | Refs | README | LICENSE |
2359.cpp (667B)
0 class Solution { 1 public: 2 int closestMeetingNode(vector<int> &e, int node1, int node2) { 3 const int n = e.size(); 4 vector<int> d(n, -1); 5 6 for (int i = node1, di = 0; i != -1 && d[i] == -1; i = e[i]) 7 d[i] = di++; 8 9 int res = -1, mini = INT_MAX; 10 for (int i = node2, di = 0; i != -1 && d[i] != -2; i = e[i], di++) { 11 int t = max(d[i], di); 12 if (d[i] != -1 && t <= mini) { 13 if (t < mini) 14 res = i; 15 else 16 res = min(res, i); 17 mini = t; 18 } 19 d[i] = -2; 20 } 21 22 return res; 23 } 24 };