Skip to content

Commit 73ad5a0

Browse files
committed
feat: add solutions to lc problem: No.0223.Rectangle Area
1 parent baa2b49 commit 73ad5a0

File tree

6 files changed

+118
-7
lines changed

6 files changed

+118
-7
lines changed

solution/0200-0299/0223.Rectangle Area/README.md

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,22 +24,64 @@
2424

2525
<!-- 这里可写通用的实现逻辑 -->
2626

27+
计算重叠部分的面积,注意考虑没有重叠的情况
28+
2729
<!-- tabs:start -->
2830

2931
### **Python3**
3032

3133
<!-- 这里可写当前语言的特殊实现逻辑 -->
3234

3335
```python
34-
36+
class Solution:
37+
def computeArea(self, ax1: int, ay1: int, ax2: int, ay2: int, bx1: int, by1: int, bx2: int, by2: int) -> int:
38+
a = (ax2 - ax1) * (ay2 - ay1)
39+
b = (bx2 - bx1) * (by2 - by1)
40+
width = min(ax2, bx2) - max(ax1, bx1)
41+
height = min(ay2, by2) - max(ay1, by1)
42+
return a + b - max(height, 0) * max(width, 0)
3543
```
3644

3745
### **Java**
3846

3947
<!-- 这里可写当前语言的特殊实现逻辑 -->
4048

4149
```java
50+
class Solution {
51+
public int computeArea(int ax1, int ay1, int ax2, int ay2, int bx1, int by1, int bx2, int by2) {
52+
int a = (ax2 - ax1) * (ay2 - ay1);
53+
int b = (bx2 - bx1) * (by2 - by1);
54+
int width = Math.min(ax2, bx2) - Math.max(ax1, bx1);
55+
int height = Math.min(ay2, by2) - Math.max(ay1, by1);
56+
return a + b - Math.max(height, 0) * Math.max(width, 0);
57+
}
58+
}
59+
```
4260

61+
### **Go**
62+
63+
```go
64+
func computeArea(ax1 int, ay1 int, ax2 int, ay2 int, bx1 int, by1 int, bx2 int, by2 int) int {
65+
a := (ax2 - ax1) * (ay2 - ay1)
66+
b := (bx2 - bx1) * (by2 - by1)
67+
width := min(ax2, bx2) - max(ax1, bx1)
68+
height := min(ay2, by2) - max(ay1, by1)
69+
return a + b - max(height, 0)*max(width, 0)
70+
}
71+
72+
func max(a, b int) int {
73+
if a > b {
74+
return a
75+
}
76+
return b
77+
}
78+
79+
func min(a, b int) int {
80+
if a < b {
81+
return a
82+
}
83+
return b
84+
}
4385
```
4486

4587
### **...**

solution/0200-0299/0223.Rectangle Area/README_EN.md

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,53 @@
4040
### **Python3**
4141

4242
```python
43-
43+
class Solution:
44+
def computeArea(self, ax1: int, ay1: int, ax2: int, ay2: int, bx1: int, by1: int, bx2: int, by2: int) -> int:
45+
a = (ax2 - ax1) * (ay2 - ay1)
46+
b = (bx2 - bx1) * (by2 - by1)
47+
width = min(ax2, bx2) - max(ax1, bx1)
48+
height = min(ay2, by2) - max(ay1, by1)
49+
return a + b - max(height, 0) * max(width, 0)
4450
```
4551

4652
### **Java**
4753

4854
```java
55+
class Solution {
56+
public int computeArea(int ax1, int ay1, int ax2, int ay2, int bx1, int by1, int bx2, int by2) {
57+
int a = (ax2 - ax1) * (ay2 - ay1);
58+
int b = (bx2 - bx1) * (by2 - by1);
59+
int width = Math.min(ax2, bx2) - Math.max(ax1, bx1);
60+
int height = Math.min(ay2, by2) - Math.max(ay1, by1);
61+
return a + b - Math.max(height, 0) * Math.max(width, 0);
62+
}
63+
}
64+
```
4965

66+
### **Go**
67+
68+
```go
69+
func computeArea(ax1 int, ay1 int, ax2 int, ay2 int, bx1 int, by1 int, bx2 int, by2 int) int {
70+
a := (ax2 - ax1) * (ay2 - ay1)
71+
b := (bx2 - bx1) * (by2 - by1)
72+
width := min(ax2, bx2) - max(ax1, bx1)
73+
height := min(ay2, by2) - max(ay1, by1)
74+
return a + b - max(height, 0)*max(width, 0)
75+
}
76+
77+
func max(a, b int) int {
78+
if a > b {
79+
return a
80+
}
81+
return b
82+
}
83+
84+
func min(a, b int) int {
85+
if a < b {
86+
return a
87+
}
88+
return b
89+
}
5090
```
5191

5292
### **...**
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
func computeArea(ax1 int, ay1 int, ax2 int, ay2 int, bx1 int, by1 int, bx2 int, by2 int) int {
2+
a := (ax2 - ax1) * (ay2 - ay1)
3+
b := (bx2 - bx1) * (by2 - by1)
4+
width := min(ax2, bx2) - max(ax1, bx1)
5+
height := min(ay2, by2) - max(ay1, by1)
6+
return a + b - max(height, 0)*max(width, 0)
7+
}
8+
9+
func max(a, b int) int {
10+
if a > b {
11+
return a
12+
}
13+
return b
14+
}
15+
16+
func min(a, b int) int {
17+
if a < b {
18+
return a
19+
}
20+
return b
21+
}
Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
class Solution {
2-
public int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {
3-
long x = (long) Math.min(C, G) - Math.max(A, E);
4-
long y = (long) Math.min(D, H) - Math.max(B, F);
5-
int intersection = x > 0 && y > 0 ? (int) (x * y) : 0;
6-
return (C - A) * (D - B) + (G - E) * (H - F) - intersection;
2+
public int computeArea(int ax1, int ay1, int ax2, int ay2, int bx1, int by1, int bx2, int by2) {
3+
int a = (ax2 - ax1) * (ay2 - ay1);
4+
int b = (bx2 - bx1) * (by2 - by1);
5+
int width = Math.min(ax2, bx2) - Math.max(ax1, bx1);
6+
int height = Math.min(ay2, by2) - Math.max(ay1, by1);
7+
return a + b - Math.max(height, 0) * Math.max(width, 0);
78
}
89
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
class Solution:
2+
def computeArea(self, ax1: int, ay1: int, ax2: int, ay2: int, bx1: int, by1: int, bx2: int, by2: int) -> int:
3+
a = (ax2 - ax1) * (ay2 - ay1)
4+
b = (bx2 - bx1) * (by2 - by1)
5+
width = min(ax2, bx2) - max(ax1, bx1)
6+
height = min(ay2, by2) - max(ay1, by1)
7+
return a + b - max(height, 0) * max(width, 0)

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy