Leetcode 223. 矩形面积 解题思路及C++实现
生活随笔
收集整理的这篇文章主要介绍了
Leetcode 223. 矩形面积 解题思路及C++实现
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
解题思路:
着重研究一下矩形四个顶点坐标的大小关系。
if 条件语句中判断是否出现不重叠的情况。
当出现重叠时,需要找出重叠矩形的四个顶点坐标:在小的横坐标中找出更大者,就是重叠矩形中较大的横坐标值 x1,在大的横坐标中找出更小者,就是重叠矩形中较小的横坐标值 x2。重叠矩形的纵坐标也同理可得。
class Solution { public:int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {int area1 = (C - A) * (D - B);int area2 = (G - E) * (H - F);if(C < E || A > G || B > H || D < F) return area1 + area2;else{int x1 = min(C, G); // 大的横坐标中谁更小int x2 = max(A, E); // 小的横坐标中谁更大int y1 = min(D, H);int y2 = max(B, F);return area1 - (x1 - x2) * (y1 - y2) + area2;}} };
总结
以上是生活随笔为你收集整理的Leetcode 223. 矩形面积 解题思路及C++实现的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Leetcode 172. 阶乘后的零
- 下一篇: Leetcode 279. 完全平方数