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. 完全平方数