Re: [閒聊] 每日LeetCode

看板Marginalman作者 (アユニ.D)時間1年前 (2022/11/18 18:53), 1年前編輯推噓3(300)
留言3則, 3人參與, 1年前最新討論串110/719 (看更多)
(忘記引用原文了,這昨天的兩矩形面積和) 還記得邊長為 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。 最後把兩個集合做聯集,看裡面有多少正方形就是答案了。 其實我沒想到這樣會過==可能座標不夠大吧? -- 僕の妹がこんなに可愛いわけがない担当のアユニ‧D です https://i.imgur.com/Zvo15mG.jpg
https://twitter.com/AYUNiD_BiSH https://instagram.com/ayunid_official -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.74.116.157 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1668768793.A.9C7.html

11/18 18:54, 1年前 , 1F
大師
11/18 18:54, 1F

11/18 18:55, 1年前 , 2F
大師
11/18 18:55, 2F

11/18 19:02, 1年前 , 3F
大師
11/18 19:02, 3F
※ 編輯: AyuniD (42.74.116.157 臺灣), 11/18/2022 19:11:11
文章代碼(AID): #1ZTsGPd7 (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1ZTsGPd7 (Marginalman)