mirror of
https://github.com/halfrost/LeetCode-Go.git
synced 2025-07-05 16:36:41 +08:00
29 lines
476 B
Go
29 lines
476 B
Go
package leetcode
|
|
|
|
func computeArea(A int, B int, C int, D int, E int, F int, G int, H int) int {
|
|
X0, Y0, X1, Y1 := max(A, E), max(B, F), min(C, G), min(D, H)
|
|
return area(A, B, C, D) + area(E, F, G, H) - area(X0, Y0, X1, Y1)
|
|
}
|
|
|
|
func area(x0, y0, x1, y1 int) int {
|
|
l, h := x1-x0, y1-y0
|
|
if l <= 0 || h <= 0 {
|
|
return 0
|
|
}
|
|
return l * h
|
|
}
|
|
|
|
func max(a int, b int) int {
|
|
if a > b {
|
|
return a
|
|
}
|
|
return b
|
|
}
|
|
|
|
func min(a int, b int) int {
|
|
if a > b {
|
|
return b
|
|
}
|
|
return a
|
|
}
|