leetcode

Solution 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);
6 for (int i = node1, di = 0; i != -1 && d[i] == -1; i = e[i])
7 d[i] = di++;
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 }
22 return res;
23 }
24 };