leetcode刷题笔记 223题 矩形面积
leetcode刷题笔记 223题 矩形面积
源地址:223. 矩形面积
问题描述:
在二维平面上计算出两个由直线构成的矩形重叠后形成的总面积。
每个矩形由其左下顶点和右上顶点坐标表示,如图所示。
示例:
输入: -3, 0, 3, 4, 0, -1, 9, 2
输出: 45
//保证ABCD指示左侧矩形,计算交叉面积的上下左右,计算交叉面积用于扣除
object Solution {
def computeArea(A: Int, B: Int, C: Int, D: Int, E: Int, F: Int, G: Int, H: Int): Int = {
if (A < E) computeArea(E, F, G, H, A, B, C, D)
if (D <= F || C <= E || H <= B || G <= A) return (D-B)*(C-A) + (H-F)*(G-E)
val xLeft = math.max(A, E)
val xRight = math.min(C, G)
val xTop = math.min(D, H)
val xBottom = math.max(B, F)
return (D-B)*(C-A) + (H-F)*(G-E) - (xTop-xBottom)*(xRight-xLeft)
}
}