Dataford
Interview QuestionsInterview GuidesExperiencesMock InterviewsPricing
Get started

Rectangle Intersection Check

HardPython00:00
Practice interviewer
In session
5 left
00:00

Your question is Rectangle Intersection Check. Start with the requirements on the right.

Run and submit as often as you like. When you're ready, talk me through your approach or go straight to the code.

You need to log in / sign up to run or submit.

Problem

Groq's geometry utilities need to determine whether two rectangular regions overlap in any way. Given the four vertices of each rectangle, return True if the rectangles overlap or touch, and False otherwise.

The vertices within each rectangle are provided in arbitrary order. Each rectangle has positive area, and its four points are guaranteed to form a valid rectangle. Touching at an edge, corner, or any boundary point counts as an intersection.

Formal Specification

Implement intersect_rectangles(rect1, rect2), where rect1 and rect2 are lists containing exactly four points. Each point is a two-element list [x, y], and all coordinates are integers. Return a boolean.

Use the separating axis theorem: two convex polygons do not intersect if some axis, perpendicular to an edge of either polygon, separates their projections.

Constraints

  • Each rectangle contains exactly four valid vertices.
  • Vertices may be supplied in arbitrary order.
  • -10^9 <= x, y <= 10^9.
  • Each rectangle has positive area.
  • Touching boundaries count as intersection.

Function Signature

def intersect_rectangles(rect1, rect2):
Your solutionPython 3
You need to log in / sign up to run or submit.
Run your code to see test output