LEETCODE 223. 矩形面积

LEETCODE 223. 矩形面积

在二维平面上计算出两个由直线构成的矩形重叠后形成的总面积。

每个矩形由其左下顶点和右上顶点坐标表示,如图所示。

示例:

输入: -3, 0, 3, 4, 0, -1, 9, 2
输出: 45
说明: 假设矩形面积不会超出 int 的范围。

题目地址
中文版
英文版

 

代码实现

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
		"""	
		if(A > E):
			return self.computeArea(E,F,G,H,A,B,C,D)
		ab_cd = abs(C-A) * abs(D-B)
		ef_gh = abs(G-E) * abs(H-F)
		if(D<=F or C<=E or H<=B):
			return ab_cd + ef_gh
		x_left = max(A,E)
		y_left = max(B,F)
		x_right = min(C,G)
		y_right = min(D,H)
		overlap = abs(x_right-x_left) * abs(y_right-y_left)
		return ab_cd + ef_gh - overlap
                                                                         
0 次阅读

发表评论

电子邮件地址不会被公开。