Re: [閒聊] 每日LeetCode

作者: AyuniD (アユニ.D)   2022-11-18 18:53:09
(忘記引用原文了,這昨天的兩矩形面積和)
還記得邊長為 1 的正方形面積為 1,而既然我們有座標,是不是可以去看兩個長方形裡面
總共有多少個正方形就好了?
大概像這樣:
class Solution:
def computeArea(self, ax1: int, ay1: int, ax2: int, ay2: int, bx1: int, by1:
int, bx2: int, by2: int) -> int:
a_points = {(i, j) for i in range(ax1, ax2) for j in range(ay1, ay2)}
b_points = {(i, j) for i in range(bx1, bx2) for j in range(by1, by2)}
return len(a_points.union(b_points))
你可能會想說 range(start, end) 不是下包上不包嗎?為什麼不用 +1?
我本來也這樣想,直到測試出來的結果跟想的不一樣,後來才發現集合裡面的座標是表示各
正方形左下角的點而不是正方形本身,所以不用 +1。
最後把兩個集合做聯集,看裡面有多少正方形就是答案了。
其實我沒想到這樣會過==可能座標不夠大吧?
作者: hahaha021225 (安安你好)   2022-11-18 18:54:00
大師
作者: CP3isgood (3345678)   2022-11-18 18:55:00
大師
作者: pandix (麵包屌)   2022-11-18 19:02:00
大師

Links booklink

Contact Us: admin [ a t ] ucptt.com