Re: [閒聊] 每日LeetCode
223. Rectangle Area
給你兩個矩形的對角線頂點,求出這兩個矩形的面積(重疊的扣除)。
https://assets.leetcode.com/uploads/2021/05/08/rectangle-plane.png

Example:
Input: ax1 = -3, ay1 = 0, ax2 = 3, ay2 = 4, bx1 = 0, by1 = -1, bx2 = 9, by2 =
2
Output: 45
思路:
1.先用對角線的兩個點求出面積並相加。
2.判斷如果該兩個矩形滿足四種不重合條件之一就直接返回1的面積。
3.否則減去重合部分面積
JavaCode:
-----------------------------------------------
class Solution {
public int computeArea(int ax1, int ay1, int ax2, int ay2, int bx1, int
by1, int bx2, int by2) {
int total = (ay2 - ay1) * (ax2 - ax1) + (by2 - by1) * (bx2 - bx1);
if (bx1 >= ax2 || ax1 >= bx2 || by1 >= ay2 || ay1 >= by2) {
return total;
}
return total - (Math.min(bx2, ax2) - Math.max(ax1, bx1)) *
(Math.min(by2, ay2) - Math.max(ay1, by1));
}
}
-----------------------------------------------
拿出紙筆畫很久 才寫出來
這題純考數學吧 根本沒考什麼演算法 垃圾題目
--
https://i.imgur.com/bFRiqA3.jpg

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.231.29.216 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1668653671.A.CCA.html
推
11/17 10:55,
3年前
, 1F
11/17 10:55, 1F
推
11/17 12:14,
3年前
, 2F
11/17 12:14, 2F
討論串 (同標題文章)
完整討論串 (本文為第 108 之 719 篇):