The following is an interview question which I've tried hard to solve. The required bound is to be less than O(n^2)
. Here is the problem:
You are given with a set of points S =
(x1,y1)....(xn,yn)
. The points are co-ordinates on the XY plane. A point(xa,ya)
is said to be greater than point(xb,yb)
if and only ifxa > xb
andya > yb
. The objective is the find all pairs of points p1 = (xa,ya) and p2 = (xb,yb) from the set S such that p1 > p2.
Example:
Input S = (1,2),(2,1),(3,4)
Answer: {(3,4),(1,2)} , {(3,4),(2,1)}
I can only come up with an O(n^2)
solution that involves checking each point with other. If there is a better approach, please help me.