zoukankan      html  css  js  c++  java
  • LeetCode-Rectangle Area

    Find the total area covered by two rectilinear rectangles in a 2D plane.

    Each rectangle is defined by its bottom left corner and top right corner as shown in the figure.

    Rectangle Area

    Assume that the total area is never beyond the maximum possible value of int.

    Credits:
    Special thanks to @mithmatt for adding this problem, creating the above image and all test cases.

     
     Analysis:
    Area = area1 + area2 - overlap. To find out overlapped area, we decompose the matrix into x dimension and y dimension; we then find out the overlapped interval in x&y diemension respectively, which are the four lines constructing the overlapped rectangle.
     
    Solution:
    public class Solution {
        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 overlap = 0;
            
            if (E<C && A<G && F<D && B<H){
                int left = Math.max(A,E);
                int right = Math.min(C,G);
                int up = Math.min(D,H);
                int bottom = Math.max(B,F);
                overlap = (right-left) * (up-bottom);
            }
            return area1+area2-overlap;
        }
    }
  • 相关阅读:
    python 之Twsited
    python之 rabbitmq
    python 之redis
    异常处理
    python select
    线程与进程
    初识socket
    Position属性
    Http协议理解
    BFC(块级格式化上下文)
  • 原文地址:https://www.cnblogs.com/lishiblog/p/5858754.html
Copyright © 2011-2022 走看看