美文网首页
力扣算法分享

力扣算法分享

作者: 刘智超 | 来源:发表于2020-06-21 10:32 被阅读0次

在二维平面上计算出两个由直线构成的矩形重叠后形成的总面积。

每个矩形由其左下顶点和右上顶点坐标表示,如图所示。

输入: -3, 0, 3, 4, 0, -1, 9, 2

输出: 45

说明: 假设矩形面积不会超出 int 的范围。‘

仔细分析,通过数学公式进行计算,可以看出H-B等于第一个矩形加第二个矩形得边相加再减去一个重叠得长度,因此可以计算出重叠长度,同理重叠得面积可以算出

具体代码

```java

class Solution {

    public int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {

        int are=0;

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

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

if(A>=G||E>=C||B>=H||F>=D){

are = (D-B)*(C-A)+(G-E)*(H-F);

return are;}

int max=0;

int max1=0;

if(E>=A&&G>C){max=G-A;}

if(E>=A&&G<=C)max=C-A;

if(E<A&&G<=C)max=C-E;

if(E<A&&G>C)max=G-E;

if(B>=F&&H<D)max1=D-F;

if(B>=F&&H>=D)max1=H-F;

if(B<F&&H<D)max1=D-B;

if(B<F&&H>=D)max1=H-B;

are = (D-B)*(C-A)+(G-E)*(H-F)-(D-B+H-F-max1)*(C-A+G-E-max);

return are;

    }

}

```

相关文章

  • 力扣算法分享

    在二维平面上计算出两个由直线构成的矩形重叠后形成的总面积。 每个矩形由其左下顶点和右上顶点坐标表示,如图所示。 输...

  • 力扣算法

    二叉树 二叉树的前序遍历-144[https://leetcode-cn.com/problems/binary-...

  • 技术网站分享

    分享一些程序员常用的网站 综合 推荐 力扣(LeetCode):算法刷题[https://leetcode-cn....

  • ATRS第1周

    ATRS Algorithm算法题: 两数之和 - 力扣 (LeetCode) ``` function twoS...

  • 个人技术点图片介绍

    算法:力扣第一题:https://www.jianshu.com/p/d578de7d1dc9力扣第二题:http...

  • 前端刷题网站

    leetcode(力扣) 算法刷题 英文网址 https://leetcode.com/[https://le...

  • 哈希(散列函数)

    力扣题库极客时间 Hash算法也被称为散列算法,Hash算法虽然被称为算法,但实际上它更像是一种思想。Hash算法...

  • 算法相关

    算法复杂度相关概念:漫画:什么是时间复杂度?算法的时间复杂度和空间复杂度详解算法题库:力扣 一、排序算法 排序算法...

  • 并查集 Java实现

    算法题目 力扣 <连通网络的操作次数>[https://leetcode-cn.com/problems/numb...

  • 力扣算法 - 反转链表

    反转链表 反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL输出: 5->4->3->2->...

网友评论

      本文标题:力扣算法分享

      本文链接:https://www.haomeiwen.com/subject/gvpoxktx.html