Find All People With Secret

You are given an integer n indicating there are n people numbered from 0 to n - 1. You are also given a 0-indexed 2D integer array meetings where meetings[i] = [xi, yi, timei] indicates that person xi and person yi have a meeting at timei. A person may attend multiple meetings at the same time. Finally, you are given an integer firstPerson.

Person 0 has a secret and initially shares the secret with person firstPerson at time 0. This secret is then shared every time a meeting takes place with a person that has the secret. More formally, for every meeting, if person xi has the secret at timei, then they will share the secret with person yi, and vice versa.

The secrets are shared instantaneously. That is, a person may receive the secret and share it with people in other meetings within the same time frame.

Return a list of all the people that have the secret after all the meetings have taken place. You may return the answer in any order.

Example 1
Inputn = 6, meetings = [[1,2,5],[2,3,8],[1,5,10]], firstPerson = 1
Output[0,1,2,3,5]
Person 0 shares the secret with person 1 at time 0, then the secret spreads from 1 to 2 at time 5, from 2 to 3 at time 8, and from 1 to 5 at time 10.
Example 2
Inputn = 4, meetings = [[3,1,3],[1,2,2],[0,3,3]], firstPerson = 3
Output[0,1,3]
Person 0 shares the secret with person 3 at time 0, the meeting at time 2 spreads no secret, and at time 3 person 3 shares it with person 1 while person 0 already knows it.

Constraints

  • 2 <= n <= 10^5
  • 1 <= meetings.length <= 10^5
  • meetings[i].length == 3
  • 0 <= xi, yi <= n - 1
  • xi != yi
  • 1 <= timei <= 10^5
  • 1 <= firstPerson <= n - 1

Asked at 3 companies

</>

Your Solution

(Ctrl/Cmd + Enter)

Switching Language

Loading template...

Loading...

Sign in to save your progress

AI code evaluation

Get a correctness verdict, missed edge cases, and complexity analysis of your solution.

Sign in to evaluate