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;
        }
    }
  • 相关阅读:
    js 立即调用函数
    layui confirm
    jquery ajax
    abap append 用法
    少年愁
    SAP 物料移动tcode
    常用tcode
    ME23N PO 打印预览 打印问题
    Y_TEXT001-(保存长文本)
    ZPPR001-(展bom)
  • 原文地址:https://www.cnblogs.com/lishiblog/p/5858754.html
Copyright © 2011-2022 走看看