[Leetcode]-Rectangle Area

原创 2015年06月26日 11:15:27

//题目: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.
这里写图片描述
//求两个正方形的面积(重叠地方只算一次),已知两个正方形的对角顶点
//关键在于分别求取所有4个横纵轴坐标的两个中间值
//注意:当两个正方形无重叠的情况

#include <stdlib.h>
#include <stdio.h>

#define min(a,b) ((a)<(b))?(a):(b)
#define max(a,b) ((a)>(b))?(a):(b)

int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) 
{
    //正方形1对角顶点(A,B)     (C,D)  
    //正方形2对角顶点(E,F)     (G,H)
    //横坐标: A,C,E,G
    //纵坐标: B,D,F,H

    //判断无重叠的情况
    if((abs(A-G)-(C-A)-(G-E)) > 0) 
        return (G-E)*(H-F) + (D-B)*(C-A);
    if((abs(E-C)-(C-A)-(G-E)) > 0) 
        return (G-E)*(H-F) + (D-B)*(C-A);
    if((abs(H-B)-(D-B)-(H-F)) > 0) 
        return (G-E)*(H-F) + (D-B)*(C-A);
    if((abs(D-F)-(D-B)-(H-F)) > 0) 
        return (G-E)*(H-F) + (D-B)*(C-A);

    //if((A == B)&&(B == C)&&(C == D)) return (G-E)*(H-F);
    //if((E == F)&&(F == G)&&(G == H)) return (D-B)*(C-A);

    //有重叠的情况
    int m=0,n=0;
    n = abs((min(G,C))-(max(A,E)));
    m = abs((min(D,H))-(max(B,F)));

    return (G-E)*(H-F) + (D-B)*(C-A) - m*n;

}


int main()
{
    int A = -2,B = -2,C = 2,D = 2,E = -2,F = -2,G = 2,H = 2;
    int area = computeArea( A, B, C, D, E, F, G, H);
    printf("area is :%d\n",area);
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

【LeetCode-面试算法经典-Java实现】【223-Rectangle Area(矩形区域)】

【223-Rectangle Area(矩形区域)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】代码下载【https://github.com/Wang-Jun-Chao】原题...

Leetcode 223 Rectangle Area 矩形区域面积

计算两个矩形所在2D空间内覆盖的区域面积。

LeetCode Rectangle Area

LeetCode Rectangle Area题目思路刚开始自己写别提WA多少遍了; 后来看到标达真的被惊讶到了; 代码可以这么美;代码自己的#define min(A, B) (A > B ? ...

Leetcode 223 - Rectangle Area(矩形面积交)

题意两个和坐标轴平行的矩形,可能相交,求这两个矩形的总面积。思路关键是确定相交矩形的面积,我们可以通过确定四个顶点,也可以通过长和宽。算法1通过确定四个顶点(实际上是4条边的位置,最上面的边,最下面的...
  • Lzedo
  • Lzedo
  • 2017年03月06日 11:00
  • 107

【leetcode】223. Rectangle Area

一、题目解读 Find the total area covered by two rectilinear rectangles in a 2D plane. Each rectangle is...

LeetCode 223 Rectangle Area(矩形面积)

翻译找到在二维平面中两个相交矩形的总面积。每个矩形都定义了其左下角和右上角的坐标。(矩形如下图)假设,总占地面积永远不会超过int的最大值。原文分析这题前天试过,写了一堆判断,终究还是无果……贴几个别...
  • NoMasp
  • NoMasp
  • 2016年01月27日 12:17
  • 2362

LeetCode-223. Rectangle Area (JAVA)求矩形覆盖面积

LeetCode-223. Rectangle Area (JAVA)求矩形覆盖面积

leetcode_Rectangle Area

描述: Find the total area covered by two rectilinear rectangles in a 2D plane. Each rectangle ...

[leetcode] 223.Rectangle Area

题目: Find the total area covered by two rectilinear rectangles in a 2D plane.Each rectangle is defin...

Leetcode_223_Rectangle Area

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/46868363 Find the total area...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[Leetcode]-Rectangle Area
举报原因:
原因补充:

(最多只允许输入30个字)