Skip to main content

223. Rectangle Area

https://leetcode.com/problems/rectangle-area/

Python

class Solution:
def computeArea(self, ax1: int, ay1: int, ax2: int, ay2: int, bx1: int, by1: int, bx2: int, by2: int) -> int:

overlap_x = min(ax2, bx2) - max(ax1, bx1)
overlap_y = min(ay2, by2) - max(ay1, by1)

overlap = 0
if overlap_x > 0 and overlap_y > 0:
overlap = overlap_x * overlap_y

return (ax2-ax1)*(ay2-ay1) + (bx2-bx1)*(by2-by1) - overlap

Go

func computeArea(ax1 int, ay1 int, ax2 int, ay2 int, bx1 int, by1 int, bx2 int, by2 int) int {
var xLeft, xRight, xTop, xBottom int

if (ax2 > bx2) { xRight = bx2 } else { xRight = ax2 }
if (ax1 > bx1) { xLeft = ax1 } else { xLeft = bx1 }
if (ay2 > by2) { xBottom = by2 } else { xBottom = ay2 }
if (ay1 > by1) { xTop = ay1 } else { xTop = by1 }

overlapX, overlapY := xRight-xLeft, xBottom-xTop

overlap := 0
if overlapX > 0 && overlapY > 0 {
overlap = overlapX * overlapY
}

areaA := (ax2-ax1) * (ay2-ay1)
areaB := (bx2-bx1) * (by2-by1)

return areaA + areaB - overlap
}