关闭

[Leetcode]-Rectangle Area

标签: leetcode
564人阅读 评论(0) 收藏 举报
分类:

//题目: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);
}
1
0
查看评论

leetcode 223: Rectangle Area

leetcode 223: Rectangle Area java c++ python
  • xudli
  • xudli
  • 2015-06-10 03:25
  • 8334

Leetcode_223_Rectangle Area

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/46868363 Find the total area covered by two rectilinear rectangles i...
  • pistolove
  • pistolove
  • 2015-07-13 22:02
  • 990

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

【223-Rectangle Area(矩形区域)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】代码下载【https://github.com/Wang-Jun-Chao】原题  Find the total area covered by two rectilinear r...
  • DERRANTCM
  • DERRANTCM
  • 2015-08-29 06:39
  • 2717

Largest Rectangle in Histogram -- LeetCode

原题链接: http://oj.leetcode.com/problems/largest-rectangle-in-histogram/  这道题brute force的方法很直接,就是对于每一个窗口,找到其中最低的高度,然后求面积,去其中最大的矩形面积。总共有n^2个窗口,找...
  • linhuanmars
  • linhuanmars
  • 2014-03-05 08:52
  • 15493

leetcode_question_85 Largest Rectangle in Histogram

Given n non-negative integers representing the histogram's bar height where the width of each bar is 1, find the area of largest rectang...
  • doc_sgl
  • doc_sgl
  • 2013-09-18 14:00
  • 10013

[LintCode]Rectangle Area(Java)

public class Rectangle {     /*      * Define two public attributes width and height of type int.      */ ...
  • gamesluo
  • gamesluo
  • 2017-08-05 15:19
  • 333

Leetcode 391. Perfect Rectangle 完美矩形 解题报告

1 解题思想这道题是说给了一堆小矩形的坐标(左下角和右上角围成的),问其能否组合成一个完成的矩形。这题肯定不能暴力开辟一个数组去做,或者其他类似思想。。看了下Leetcode的讨论,最终总结出如下的做法: 核心思想就是:能够正好围成一个矩形的情况就是: 有且只有: - 最左下 最...
  • MebiuW
  • MebiuW
  • 2016-08-29 16:04
  • 4098

【LeetCode-223】 Rectangle Area(C++)

题目要求:求两个矩形所围成的总面积,每个矩形均由左下角的点坐标和右上点的坐标定义。如下图: 解题思路:其实就是简单的数学问题,首先判断两矩阵是不是相交,如果不相交,直接将两矩阵的面积相加;如果相交,则将两矩阵面积相加在减去公共区域的面积。 代码实现:class Solution { pu...
  • liujiayu1015
  • liujiayu1015
  • 2016-05-11 22:20
  • 219

leetcode_question_85 Maximal Rectangle

Given a 2D binary matrix filled with 0's and 1's, find the largest rectangle containing all ones and return its area. 题目就是给一个矩阵,找一个全是一的最大子矩阵...
  • doc_sgl
  • doc_sgl
  • 2013-09-19 17:29
  • 14391

Leetcode: Rectangle Area

QuestionFind the total area covered by two rectilinear rectangles in a 2D plane.Each rectangle is defined by its bottom left corner and top right corn...
  • ayst123
  • ayst123
  • 2015-08-26 10:56
  • 131
    个人资料
    • 访问:293208次
    • 积分:4549
    • 等级:
    • 排名:第7738名
    • 原创:141篇
    • 转载:41篇
    • 译文:2篇
    • 评论:85条
    我的微博
    博客专栏
    文章分类