Problem 51. Find the two most distant points
Given a collection of points, return the indices of the rows that contain the two points most distant from one another. The input vector p has two columns corresponding to the x and y coordinates of each point. Return ix, the (sorted) pair of indices pointing to the remotest rows. There will always be one unique such pair of points.
So if
p = [0 0] [1 0] [2 2] [0 1]
Then
ix = [1 3]
That is, the two points p(1,:) and p(3,:) are farthest apart.
Solution Stats
Problem Comments
-
7 Comments
More easy that it seems.
You need to specify "Euclidean" distance :-)
Good problem, not too hard but required thinking
Please add the next test :
p = [0,0;
2,1;
2,6;
1,6];
ix_correct = [1 3];
assert(isequal(mostDistant(p),ix_correct))
The solutions of the form:
[~,indx]=max(dist(p'));
unique(indx)
will fail, the last line will return an extra index [1,3,4] instead of just [1,3]
refer to
Convex Hull therom and the Graham's Scan method
+1
Nice one!
Solution Comments
Show commentsProblem Recent Solvers2843
Suggested Problems
-
Given an unsigned integer x, find the largest y by rearranging the bits in x
1828 Solvers
-
337 Solvers
-
Find perfect placement of non-rotating dominoes (easier)
350 Solvers
-
Find last zero for each column
560 Solvers
-
1967 Solvers
More from this Author96
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!