题目

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. mysql修复坏表的方法
  2. ubuntu系统安装FTP
  3. python 安装scrapy,openssl opensslv.h错误的解决办法
  4. Windows Presentation Foundation (WPF)中的命令(Commands)简述
  5. 【转载】async await 的前世今生(Updated)
  6. [android] 手机卫士设置向导页面
  7. 比较=、==、===
  8. php定位符,浅析PHP正则表达式定位字符
  9. 微服务、容器、DevOps三者之间的关系你清楚吗?
  10. c#实现ajax通信:向后台发送JSON字符串,接收响应字符串,并转换为对象
  11. ReactiveCocoa中信号的使用
  12. Cisco路由重分发配置(引入路由)
  13. 用计算机运算符编写检索式,检索式
  14. android 手机屏蔽广告 hosts
  15. java中使用MD5验证文件的完整性
  16. SMS发送流程 Android2.2
  17. Win7 + ubuntu14.04 双系统
  18. 快搜-谷歌-网址记录
  19. 大街上数字标志图片_大街上的开放组织
  20. IE6、IE7、IE8之IE多版本共存的几种方法(转)

热门文章

  1. 牛客 - 建通道(思维)
  2. HDU - 5015 233 Matrix(矩阵快速幂)
  3. Dynamic ReLU论文解读
  4. Maximum Subsequence Sum最大子列和问题(c语言实现)
  5. A*寻路算法与它的速度
  6. 端口复用突破防火墙(图)
  7. LevelDB 源码剖析(九)DBImpl模块:Open、Get、Put、Delete、Write
  8. Linux(CentOS)中常用软件安装,使用及异常——Zookeeper, Kafka
  9. IO多路转接之poll
  10. 【线上分享】云原生时代,华为云音视频质量监控与优化实践