Solution: Erect the Fence

Let's solve the Erect the Fence problem using the Math and Geometry pattern.

Statement

You are given an array of points, trees, where trees[i] = [xᵢ, yᵢ] represents the location of a tree on a 2D plane. Your goal is to enclose all the trees using the shortest possible length of rope, forming a fence around the garden. A garden is considered well-fenced if every tree lies inside or on the boundary of the fence (i.e., the fence forms the convex hullThis is the smallest convex shape, completely encloses a set of points. of all the points).

Return the coordinates of the trees that lie exactly on the fence perimeter. You can return the answer in any order.

Constraints:

  • 11 \leq trees.length 300\leq 300

  • trees[i].length == 22

  • 00 \leq xi, yi 100\leq 100

  • All the given positions are unique.

Solution

Imagine we have a set of nails hammered into a wooden board—each nail represents a point from trees. Now, if we stretch a rubber band around a group of nails and let it wrap around them completely, the boundary it forms is called the convex hull. It covers all the outer points and leaves out the ones inside.

Level up your interview prep. Join Educative to access 70+ hands-on prep courses.