0% found this document useful (0 votes)
193 views2 pages

1 - Union Find

This document contains 4 interview questions related to the union-find data structure. The questions cover topics such as: finding the earliest time all members in a social network are connected given friendship timestamps; modifying the union-find find method to return the largest element in connected components; designing a data structure to support removing elements from a set and finding successors; and developing a union-find implementation that links shorter trees to taller trees to achieve logarithmic height.

Uploaded by

knaidu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
193 views2 pages

1 - Union Find

This document contains 4 interview questions related to the union-find data structure. The questions cover topics such as: finding the earliest time all members in a social network are connected given friendship timestamps; modifying the union-find find method to return the largest element in connected components; designing a data structure to support removing elements from a set and finding successors; and developing a union-find implementation that links shorter trees to taller trees to achieve logarithmic height.

Uploaded by

knaidu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

Interview Questions: Union-Find

Help

Warning: The hard deadline has passed. You can attempt it, but you will not get credit for it.
You are welcome to try it as a learning exercise.

These interview questions are for your own enrichment and are not assessed. If you click the
Submit Answers button, you will get a hint.

In accordance with the Coursera Honor Code, I (Karthik Naidu DJ) certify that the
answers here are my own work.
Thank you!

Question 1
Social network connectivity. Given a social network containing N members and a log file
containing M timestamps at which times pairs of members formed friendships, design an
algorithm to determine the earliest time at which all members are connected (i.e., every member is
a friend of a friend of a friend ... of a friend). Assume that the log file is sorted by timestamp and
that friendship is an equivalence relation. The running time of your algorithm should be M log N
or better and use extra space proportional to N .

Question 2
Union-find with specific canonical element. Add a method find()to the union-find data type
so that find(i)returns the largest element in the connected component containing i. The
operations, union(), connected(), and find()should all take logarithmic time or better.

For example, if one of the connected components is {1, 2, 6, 9}, then the find()method
should return 9 for each of the four elements in the connected components.

Question 3

Successor with delete. Given a set of N integers S

= {0, 1, . . . , N

1} and a sequence of

requests of the following form:


Remove x from S
Find the successor of x : the smallest y in S such that y

x.

design a data type so that all operations (except construction) should take logarithmic time or
better.

Question 4
Union-by-size. Develop a union-find implementation that uses the same basic strategy as
weighted quick-union but keeps track of tree height and always links the shorter tree to the taller
one. Prove a lg N upper bound on the height of the trees for N sites with your algorithm.

In accordance with the Coursera Honor Code, I (Karthik Naidu DJ) certify that the
answers here are my own work.

Submit Answers

Thank you!

Save Answers

You might also like