LeetCode——223. 矩形面积(Rectangle Area)[中等]——分析及代码(C++)
LeetCode——223. 矩形面积[Rectangle Area][中等]——分析及代码[C++]
- 一、题目
- 二、分析及代码
- 1. 几何计算
- (1)思路
- (2)代码
- (3)结果
- 三、其他
一、题目
给你 二维 平面上两个 由直线构成的 矩形,请你计算并返回两个矩形覆盖的总面积。
每个矩形由其 左下 顶点和 右上 顶点坐标表示:
- 第一个矩形由其左下顶点 (ax1, ay1) 和右上顶点 (ax2, ay2) 定义。
- 第二个矩形由其左下顶点 (bx1, by1) 和右上顶点 (bx2, by2) 定义。
示例 1:
输入:ax1 = -3, ay1 = 0, ax2 = 3, ay2 = 4, bx1 = 0, by1 = -1, bx2 = 9, by2 = 2
输出:45
示例 2:
输入:ax1 = -2, ay1 = -2, ax2 = 2, ay2 = 2, bx1 = -2, by1 = -2, bx2 = 2, by2 = 2
输出:16
提示:
- -10^4 <= ax1, ay1, ax2, ay2, bx1, by1, bx2, by2 <= 10^4
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/rectangle-area
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
二、分析及代码
1. 几何计算
(1)思路
根据题意,矩形覆盖的总面积 = 矩形一的面积 + 矩形二的面积 - 矩形重合部分的面积,直接结合几何方法计算即可。
(2)代码
class Solution {public:int computeArea(int ax1, int ay1, int ax2, int ay2, int bx1, int by1, int bx2, int by2) {int area1 = (ax2 - ax1) * (ay2 - ay1), area2 = (bx2 - bx1) * (by2 - by1);//矩形1、矩形2的面积int overArea = max(0, min(ax2, bx2) - max(ax1, bx1)) * max(0, (min(ay2, by2) - max(ay1, by1)));//矩形重合部分的面积return area1 + area2 - overArea;//矩形覆盖的总面积}
};
(3)结果
执行用时 :12 ms,在所有 C++ 提交中击败了 24.68% 的用户;
内存消耗 :6 MB,在所有 C++ 提交中击败了 7.93% 的用户。
三、其他
暂无。
LeetCode——223. 矩形面积(Rectangle Area)[中等]——分析及代码(C++)相关推荐
- LeetCode——1834. 单线程 CPU(Single-Threaded CPU)[中等]——分析及代码(Java)
LeetCode--1834. 单线程 CPU[Single-Threaded CPU][中等]--分析及代码[Java] 一.题目 二.分析及代码 1. 优先队列 (1)思路 (2)代码 (3)结果 ...
- Java实现 LeetCode 223 矩形面积
223. 矩形面积 在二维平面上计算出两个由直线构成的矩形重叠后形成的总面积. 每个矩形由其左下顶点和右上顶点坐标表示,如图所示. Rectangle Area 示例: 输入: -3, 0, 3, 4 ...
- LeetCode 223. 矩形面积
1. 题目 在二维平面上计算出两个由直线构成的矩形重叠后形成的总面积. 每个矩形由其左下顶点和右上顶点坐标表示,如图所示. 示例: 输入: -3, 0, 3, 4, 0, -1, 9, 2 输出: 4 ...
- Leetcode 223. 矩形面积 解题思路及C++实现
解题思路: 着重研究一下矩形四个顶点坐标的大小关系. if 条件语句中判断是否出现不重叠的情况. 当出现重叠时,需要找出重叠矩形的四个顶点坐标:在小的横坐标中找出更大者,就是重叠矩形中较大的横坐标值 ...
- LeetCode—5757. 矩阵中最大的三个菱形和(Get Biggest ...)[中等]—分析及代码(Java)
LeetCode--5757. 矩阵中最大的三个菱形和[Get Biggest Three Rhombus Sums in a Grid][中等]--分析及代码[Java] 一.题目 二.分析及代码 ...
- LeetCode——1888. 使二进制字符串字符交替的最少反转次数(Minimum Number of Flips to Make the Binary ...)[中等]——分析及代码(Java)
LeetCode--1888. 使二进制字符串字符交替的最少反转次数[Minimum Number of Flips to Make the Binary String Alternating][中等 ...
- LeetCode——1849. 将字符串拆分为递减的连续值(Splitting a String Into Descending Consecutive Val..)[中等]——分析及代码(Java)
LeetCode--1849. 将字符串拆分为递减的连续值[Splitting a String Into Descending Consecutive Values][中等]--分析及代码[Java ...
- LeetCode——1104. 二叉树寻路(Path In Zigzag Labelled Binary Tree)[中等]——分析及代码(Java)
LeetCode--1104. 二叉树寻路[Path In Zigzag Labelled Binary Tree][中等]--分析及代码[Java] 一.题目 二.分析及代码 1. 按位置求解 (1 ...
- LeetCode——1824. 最少侧跳次数(Minimum Sideway Jumps)[中等]——分析及代码(Java)
LeetCode--1824. 最少侧跳次数[Minimum Sideway Jumps][中等]--分析及代码[Java] 一.题目 二.分析及代码 1. 动态规划(二维数组) (1)思路 (2)代 ...
最新文章
- CDN 监控系统(二)
- python代码阅读技巧_30个Python程序员需要知道的编程技巧,可以让你的工作事半功倍!...
- C++ const 关键字小结
- 常见的8个前端防御性编程方案
- adurnio 单片机_单片机20~200A大电流检测电路设计 用AD实现 带原理图,源代码,proteus仿真文件...
- 如果深入学习前端,大佬给你总结了几个技巧!
- 惊!Python能够检测动态的物体颜色!
- 解决文件下载在火狐浏览器出现中文文件名乱码的方法
- Visual Studio Code(VS code)简单使用入门以及常用快捷键
- VMware12序列号
- 先锋linux 64位安装包的安装使用
- 什么是物联网数据采集网关?物联网数据采集网关的特点
- FLV方式实现网页FFmpeg推流无插件播放
- 机器学习入门-强烈推荐-经典好文
- 火车头 mysql发布模块_怎么使用火车采集器中的数据库发布模块编辑器
- 自动反冲洗叠片过滤器
- python glob.glob()
- 减去“商品名”这层包装外衣,让你看清“药品名”的真谛 - 看看你的感冒在中西医各怎样解读与配药
- Mac下brew及brew-cask安装使用
- 非常好看的二次元导航源码
热门文章
- linux 上端口占用的程序
- ipynb转py命令
- Beyond Compare 的开源替代工具meld
- 【PDN仿真笔记9-使用Sigrity PowerDC进行IR Drop仿真的方法】
- Java —— 冒泡排序
- 【MediaWiki之windows安装】MediaWiki创建与基础使用指南
- 【Maven】项目打包-war包-Jar包[IDEA将项目打成war包]
- 哪看计算机的网络密码,如何检查计算机的无线网络密码?两种查看方法
- IE以及其他浏览器主页被劫持到www.2345.com/?kunown的解决办法
- 《软技能》读书笔记(上)