题目

https://leetcode.com/problems/rectangle-area/

类似问题:蓝桥杯 BASIC-18 基础练习 矩形面积交

题解

本题的重点在于如何计算重叠部分的面积,即:如何定位重叠部分的左下角、右上角的边界。

1、分类讨论:重叠 vs 不重叠

2、关于如何确定重叠部分左上角、右下角边界

确定重叠部分的边界,也就是分别找到 重叠部分的右上角x、重叠部分的右上角y、重叠部分的左下角x、重叠部分的左下角y 的过程。

在代码中,我们分别将其定义为 topRightXtopRightYbottomLeftXbottomLeftY

确定完重叠部分的边界之后,将重叠部分的两条边的长度相乘,就可以得到重叠部分的面积了。

3、代码

class Solution {public int computeArea(int ax1, int ay1, int ax2, int ay2, int bx1, int by1, int bx2, int by2) {int s1 = (ax2 - ax1) * (ay2 - ay1);int s2 = (bx2 - bx1) * (by2 - by1);// 1. 无重叠部分 两矩形面积直接相加if (bx1 >= ax2 || bx2 <= ax1 || by1 >= ay2 || by2 <= ay1) {return s1 + s2;}// 2. 有重叠部分 两矩形面积相加后 减去重叠部分// 2.1 overlap bottom leftint bottomLeftX = Math.max(ax1, bx1);int bottomLeftY = Math.max(ay1, by1);// 2.2 overlap top rightint topRightX = Math.min(ax2, bx2);int topRightY = Math.min(ay2, by2);return s1 + s2 - (topRightX - bottomLeftX) * (topRightY - bottomLeftY);}
}

leetcode 223. Rectangle Area | 223. 矩形面积(Java)相关推荐

  1. 二维矩阵中的最大矩形面积--java实现

    一.原题: 给你一个二维矩阵,权值为False和True,找到一个最大的矩形,使得里面的值全部为True,输出它的面积. 样例: 给你一个矩阵如下: [[1, 1, 0, 0, 1],[0, 1, 0 ...

  2. XTU Oj 1178 Rectangle 和 1263 矩形面积的并

    Description 题目描述 给你两个平行于坐标轴的矩形,请判断两者是不是相交(面积有重合的部分)? 输入 第一行是一个整数K,表示样例数. 每个样例占两行,每行是4个整数,表示一个矩形的对角线点 ...

  3. leetcode 850. Rectangle Area II | 850. 矩形面积 II(递归分割未重叠矩形)

    题目 https://leetcode.com/problems/rectangle-area-ii/ 题解 没有看懂官方答案,评论区有一种解法写的挺通俗的: Clean Recursive Solu ...

  4. 223. Rectangle Area

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

  5. Leet Code OJ 223. Rectangle Area [Difficulty: Easy]

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

  6. LeetCode 850. Rectangle Area II

    题目地址: We are given a list of (axis-aligned) rectangles. Each rectangle[i] = [x1, y1, x2, y2] , where ...

  7. 【LeetCode笔记】85. 最大矩形(Java、单调栈)

    文章目录 题目描述 思路 && 代码 二刷 题目描述 其实是84. 柱状图中最大的矩形的兄弟题目,理解成多个84题,对结果取max即可. 思路 && 代码 一行抽象出一 ...

  8. 【Java】计算矩形面积

    题目 一个矩形可以由两个相邻边的长度确定.编写一个类,使之拥有两个表示边长的整数数据,并提供一个有用的矩形计算方法,如计算面积,更新矩形边的长 度,计算两个矩形的组合面积等.提示:需要写出具有下列形式 ...

  9. LeetCode——223. 矩形面积(Rectangle Area)[中等]——分析及代码(C++)

    LeetCode--223. 矩形面积[Rectangle Area][中等]--分析及代码[C++] 一.题目 二.分析及代码 1. 几何计算 (1)思路 (2)代码 (3)结果 三.其他 一.题目 ...

最新文章

  1. live555学习笔记2-基础类
  2. Cisco QOS之CBWFQ
  3. 不可错过!华为终端云服务带来Mate 20系列专属礼包
  4. Bootstrap系列 -- 23. 图片
  5. 自定义附加属性在XAML中的表示方法以及绑定的注意事项
  6. POJ1144 Network 连通性
  7. 法语语音教学课件下载
  8. java access数据库连接_Java Access数据库连接
  9. EFResume - 一个普通的 Swift 简历模板
  10. 【Java线程池实现原理及其在美团业务中的实践】
  11. 30行Python代码 刷王者荣耀金币
  12. 初学python------写一个心理测试
  13. [HttpServlet] Error occured when handling uri: /cat/s/router
  14. 使用源码部署CITA(Ubuntu18.0.4 | VMware)
  15. The following classes could not be found - EditText (Change to android.widget.EditText, Fix Build Pa
  16. 【行业分析】打破食品行业供应链薄弱环节,建设数字化韧性供应链
  17. 使用HttpClient下载网页
  18. 测试透射晶格分析的软件,透射电镜(TEM)电子衍射在晶体结构分析中的应用三...
  19. 疯狂Java讲义(四)
  20. 建立强大的verilog编写环境

热门文章

  1. python输入一组数字存到列表_Python如何使用输入传递多个值并将它们存储在一个列表中(简单版本),python,怎么,input,传入,储存,到...
  2. Linux闲时自动抢占GPU脚本
  3. HDU1421 搬寝室
  4. PostgreSQL学习笔记5之函数和操作符一
  5. UDT协议实现分析——UDT初始化和销毁
  6. 用Python实现优先级队列
  7. Socket之UDP客户端【Python】
  8. 恕我直言,IDEA的Debug,你可能只用了10%
  9. Vimeo针对GIF性能和质量的改进
  10. 深度学习在AEC中的应用探索