在二維平面上計算出兩個由直線構成的矩形重疊後形成的總面積。
每個矩形由其左下頂點和右上頂點座標表示,如圖所示。
示例:輸入: -3, 0, 3, 4, 0, -1, 9, 2
輸出: 45
說明: 假設矩形面積不會超出 int 的範圍。
思路:思路比較簡單,
先判斷一下存不存在重疊的部分,
判斷的依據是: 如果【a, c】和【e, g】存在交集 並且 【b, d】和【f, h】存在交集,則說明存在重疊面積,
再分別計算出兩個矩形各自的面積, 加在一起最後減去重疊部分的面積就是總面積了。
class solution(object):
def computearea(self, a, b, c, d, e, f, g, h):
""":type a: int
:type b: int
:type c: int
:type d: int
:type e: int
:type f: int
:type g: int
:type h: int
:rtype: int
"""# [a, c]和[e, g]取交集, [b, d]和[f, h]取交集
if min(c, g) - max(a, e) < 0 or min(d, h) - max(b, f) < 0:
s_overlap = 0
else:
s_overlap = (min(c, g) - max(a, e)) * (min(d, h) - max(b, f))
s_first_square = (d - b) * (c - a)
s_second_square = (h - f) * (g - e)
# print s_second_square, s_first_square, s_overlap
return s_second_square + s_first_square - s_overlap
leetcode,python2 最大子序和
給定乙個整數陣列 nums 找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。示例 輸入 2,1,3,4,1,2,1,5,4 輸出 6 解釋 連續子陣列 4,1,2,1 的和最大,為 6。高階 如果你已經實現複雜度為 o n 的解法,嘗試使用更為精妙的分治法求解。class so...
LeetCode Python 打家劫舍I
你是乙個專業的小偷,計畫偷竊沿街的房屋。每間房內都藏有一定的現金,影響你偷竊的唯一制約因素就是相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動報警。給定乙個代表每個房屋存放金額的非負整數陣列,計算你在不觸動警報裝置的情況下,能夠偷竊到的最高金額。示例 1 輸入 1...
leetcode Python編碼練習
貪心演算法 1.環形路上有n個加油站,第i個加油站的汽油量是gas i 你有一輛車,車的油箱可以無限裝汽油。從加油站i走到下乙個加油站 i 1 花費的油量是cost i 你從乙個加油站出發,剛開始 的時候油箱裡面沒有汽油。求從哪個加油站出發可以在環形路上走一圈。返回加油站的下標,如果沒有答案的話返回...