package com.anuragkapur.leetcode; import java.util.Arrays; /** * @author anuragkapur */ public class RectangleArea { public int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) { int area1 = (C-A)*(D-B); int area2 = (G-E)*(H-F); int xCoordinates[] = {A, C, E, G}; int yCoordinates[] = {B, D, F, H}; Arrays.sort(xCoordinates); Arrays.sort(yCoordinates); // is there an overlapping area? int commonArea = 0; if (overlap(A, B, C, D, E, F, G, H)) { commonArea = (xCoordinates[2]-xCoordinates[1]) * (yCoordinates[2]-yCoordinates[1]); } return area1+area2-commonArea; } private boolean overlap(int a, int b, int c, int d, int e, int f, int g, int h) { if (c <= e || g <= a || d <= f || h <= b) { return false; } return true; } }