LeetCode Problem

How to Solve Rectangle Area II

To solve this problem, we need to compute the total area covered by multiple rectangles, ensuring overlapping regions are counted only once. The key challenge is handling large coordinate ranges and overlapping areas efficiently. A combination of Array and Segment Tree is ideal for managing these large inputs and ensuring accurate area computation.

GhostInterview Help

Need help with Rectangle Area II without spending extra time grinding it?

GhostInterview can read Rectangle Area II from a screenshot, generate the answer path, explain the complexity, and support solver-first interview workflows when you need direct help fast.

Screenshot Input

Capture the prompt fast instead of rewriting the problem by hand.

Answer + Complexity

Get the solution path, trade-offs, and complexity summary in one pass.

Stealth Workflow

Stay outside captured layers on supported screen-share workflows.

Problem #850Array plus Segment TreeReviewed 2026-03-08
Difficulty
Hard
Primary pattern
Array plus Segment Tree
Answer-first problem summary
Step-by-step approach and complexity
GhostInterview solver workflow

To solve this problem, we need to compute the total area covered by multiple rectangles, ensuring overlapping regions are counted only once. The key challenge is handling large coordinate ranges and overlapping areas efficiently. A combination of Array and Segment Tree is ideal for managing these large inputs and ensuring accurate area computation.

Problem Statement

You are given an array of axis-aligned rectangles, where each rectangle is represented by four integers [xi1, yi1, xi2, yi2] corresponding to the bottom-left and top-right corners. The task is to calculate the total area covered by all these rectangles, while ensuring that overlapping areas are counted only once. The final result must be returned modulo 10^9 + 7.

The challenge lies in the efficient computation of the overlapping areas of these rectangles, given that their coordinates can range from 0 to 10^9. Direct area calculation may result in excessive time complexity. The optimal solution involves using data structures such as a Segment Tree and employing the Line Sweep technique to handle large inputs and overlapping efficiently.

Examples

Example 1

Input: rectangles = [[0,0,2,2],[1,0,2,3],[1,0,3,1]]

Output: 6

A total area of 6 is covered by all three rectangles, as illustrated in the picture. From (1,1) to (2,2), the green and red rectangles overlap. From (1,0) to (2,3), all three rectangles overlap.

Example 2

Input: rectangles = [[0,0,1000000000,1000000000]]

Output: 49

The answer is 1018 modulo (109 + 7), which is 49.

Constraints

  • 1 <= rectangles.length <= 200
  • rectanges[i].length == 4
  • 0 <= xi1, yi1, xi2, yi2 <= 109
  • xi1 <= xi2
  • yi1 <= yi2
  • All rectangles have non zero area.

Solution Approach

Array and Segment Tree

This problem requires calculating the union of areas covered by multiple rectangles, which can be efficiently achieved using a Segment Tree. First, we need to sweep the rectangles vertically, and then use a Segment Tree to store and update the intervals covered by the rectangles.

Line Sweep Technique

The Line Sweep technique is used to process the rectangles by their x-coordinates. For each x-coordinate, we update the covered intervals in the Segment Tree. By sweeping through the rectangles from left to right, we ensure that overlaps are handled correctly and efficiently.

Modulo Operation for Large Output

Since the resulting area can be extremely large, we apply modulo 10^9 + 7 at each step to ensure that the solution remains manageable and fits within the problem constraints.

Complexity Analysis

MetricValue
TimeO(N^2)
SpaceO(N)

The time complexity of this solution is O(N^2), where N is the number of rectangles. This comes from the need to process each vertical line sweep, and for each such sweep, updating the Segment Tree, which takes O(N) time. The space complexity is O(N) due to the storage required for the Segment Tree and intermediate calculations.

What Interviewers Usually Probe

  • Candidate demonstrates understanding of the Line Sweep technique.
  • Candidate effectively utilizes Segment Tree to manage overlapping intervals.
  • Candidate correctly handles the modulo operation for large results.

Common Pitfalls or Variants

Common pitfalls

  • Misunderstanding the use of the Segment Tree and treating each rectangle independently.
  • Failing to handle large coordinate values properly, leading to inefficient solutions.
  • Neglecting the modulo operation when calculating the final area.

Follow-up variants

  • Allowing rectangles with negative coordinates.
  • Optimizing for rectangles with many overlapping areas.
  • Handling different types of non-rectangular shapes, such as polygons.

How GhostInterview Helps

  • GhostInterview provides a guided approach to solving problems using the Array plus Segment Tree pattern.
  • The solver helps break down complex problems into manageable steps using the Line Sweep technique.
  • By running through multiple examples, GhostInterview ensures you can efficiently handle overlapping areas and large inputs.

Topic Pages

FAQ

What is the optimal approach for solving Rectangle Area II?

The optimal approach is to combine the Array and Segment Tree data structures with the Line Sweep technique to efficiently calculate the area while managing overlaps.

Why is a Segment Tree needed for this problem?

A Segment Tree helps efficiently manage and update the covered intervals for each vertical line sweep, ensuring accurate area calculation even with overlapping rectangles.

How does the Line Sweep technique work for Rectangle Area II?

The Line Sweep technique processes the rectangles by their x-coordinates, updating the Segment Tree for each rectangle's vertical projection. This allows for accurate tracking of overlapping regions.

Why do we use modulo 10^9 + 7 in this problem?

The modulo operation is used to ensure that the resulting area does not exceed the maximum allowed value, which is 10^9 + 7, as the answer may be too large to store in standard data types.

What are the time and space complexities of the solution?

The time complexity is O(N^2), where N is the number of rectangles, due to the line sweep and Segment Tree updates. The space complexity is O(N) for storing the Segment Tree and intermediate results.

GhostInterview Solver

Need direct help with Rectangle Area II instead of spending more time grinding it?

Download GhostInterview when you want a LeetCode solver, not another long practice loop. Capture Rectangle Area II from a screenshot, get the answer path and complexity, and use supported stealth workflows that stay outside captured layers.

Screenshot Input

Capture the prompt fast instead of rewriting the problem by hand.

Answer + Complexity

Get the solution path, trade-offs, and complexity summary in one pass.

Stealth Workflow

Stay outside captured layers on supported screen-share workflows.