Skip to content

Commit d6b7f30

Browse files
committed
feat: add solutions to lc problem: No.0812
No.0812.Largest Triangle Area
1 parent de46a43 commit d6b7f30

File tree

6 files changed

+249
-2
lines changed

6 files changed

+249
-2
lines changed

solution/0800-0899/0812.Largest Triangle Area/README.md

+86-1
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,100 @@
3838
<!-- 这里可写当前语言的特殊实现逻辑 -->
3939

4040
```python
41-
41+
class Solution:
42+
def largestTriangleArea(self, points: List[List[int]]) -> float:
43+
ans = 0
44+
for x1, y1 in points:
45+
for x2, y2 in points:
46+
for x3, y3 in points:
47+
u1, v1 = x2 - x1, y2 - y1
48+
u2, v2 = x3 - x1, y3 - y1
49+
t = abs(u1 * v2 - u2 * v1) / 2
50+
ans = max(ans, t)
51+
return ans
4252
```
4353

4454
### **Java**
4555

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

4858
```java
59+
class Solution {
60+
public double largestTriangleArea(int[][] points) {
61+
double ans = 0;
62+
for (int[] p1 : points) {
63+
int x1 = p1[0], y1 = p1[1];
64+
for (int[] p2 : points) {
65+
int x2 = p2[0], y2 = p2[1];
66+
for (int[] p3 : points) {
67+
int x3 = p3[0], y3 = p3[1];
68+
int u1 = x2 - x1, v1 = y2 - y1;
69+
int u2 = x3 - x1, v2 = y3 - y1;
70+
double t = Math.abs(u1 * v2 - u2 * v1) / 2.0;
71+
ans = Math.max(ans, t);
72+
}
73+
}
74+
}
75+
return ans;
76+
}
77+
}
78+
```
79+
80+
### **C++**
81+
82+
```cpp
83+
class Solution {
84+
public:
85+
double largestTriangleArea(vector<vector<int>>& points) {
86+
double ans = 0;
87+
for (auto& p1 : points)
88+
{
89+
int x1 = p1[0], y1 = p1[1];
90+
for (auto& p2 : points)
91+
{
92+
int x2 = p2[0], y2 = p2[1];
93+
for (auto& p3 : points)
94+
{
95+
int x3 = p3[0], y3 = p3[1];
96+
int u1 = x2 - x1, v1 = y2 - y1;
97+
int u2 = x3 - x1, v2 = y3 - y1;
98+
double t = abs(u1 * v2 - u2 * v1) / 2.0;
99+
ans = max(ans, t);
100+
}
101+
}
102+
}
103+
return ans;
104+
}
105+
};
106+
```
49107
108+
### **Go**
109+
110+
```go
111+
func largestTriangleArea(points [][]int) float64 {
112+
ans := 0.0
113+
for _, p1 := range points {
114+
x1, y1 := p1[0], p1[1]
115+
for _, p2 := range points {
116+
x2, y2 := p2[0], p2[1]
117+
for _, p3 := range points {
118+
x3, y3 := p3[0], p3[1]
119+
u1, v1 := x2-x1, y2-y1
120+
u2, v2 := x3-x1, y3-y1
121+
t := float64(abs(u1*v2-u2*v1)) / 2.0
122+
ans = math.Max(ans, t)
123+
}
124+
}
125+
}
126+
return ans
127+
}
128+
129+
func abs(x int) int {
130+
if x < 0 {
131+
return -x
132+
}
133+
return x
134+
}
50135
```
51136

52137
### **...**

solution/0800-0899/0812.Largest Triangle Area/README_EN.md

+86-1
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,98 @@
3838
### **Python3**
3939

4040
```python
41-
41+
class Solution:
42+
def largestTriangleArea(self, points: List[List[int]]) -> float:
43+
ans = 0
44+
for x1, y1 in points:
45+
for x2, y2 in points:
46+
for x3, y3 in points:
47+
u1, v1 = x2 - x1, y2 - y1
48+
u2, v2 = x3 - x1, y3 - y1
49+
t = abs(u1 * v2 - u2 * v1) / 2
50+
ans = max(ans, t)
51+
return ans
4252
```
4353

4454
### **Java**
4555

4656
```java
57+
class Solution {
58+
public double largestTriangleArea(int[][] points) {
59+
double ans = 0;
60+
for (int[] p1 : points) {
61+
int x1 = p1[0], y1 = p1[1];
62+
for (int[] p2 : points) {
63+
int x2 = p2[0], y2 = p2[1];
64+
for (int[] p3 : points) {
65+
int x3 = p3[0], y3 = p3[1];
66+
int u1 = x2 - x1, v1 = y2 - y1;
67+
int u2 = x3 - x1, v2 = y3 - y1;
68+
double t = Math.abs(u1 * v2 - u2 * v1) / 2.0;
69+
ans = Math.max(ans, t);
70+
}
71+
}
72+
}
73+
return ans;
74+
}
75+
}
76+
```
77+
78+
### **C++**
79+
80+
```cpp
81+
class Solution {
82+
public:
83+
double largestTriangleArea(vector<vector<int>>& points) {
84+
double ans = 0;
85+
for (auto& p1 : points)
86+
{
87+
int x1 = p1[0], y1 = p1[1];
88+
for (auto& p2 : points)
89+
{
90+
int x2 = p2[0], y2 = p2[1];
91+
for (auto& p3 : points)
92+
{
93+
int x3 = p3[0], y3 = p3[1];
94+
int u1 = x2 - x1, v1 = y2 - y1;
95+
int u2 = x3 - x1, v2 = y3 - y1;
96+
double t = abs(u1 * v2 - u2 * v1) / 2.0;
97+
ans = max(ans, t);
98+
}
99+
}
100+
}
101+
return ans;
102+
}
103+
};
104+
```
47105
106+
### **Go**
107+
108+
```go
109+
func largestTriangleArea(points [][]int) float64 {
110+
ans := 0.0
111+
for _, p1 := range points {
112+
x1, y1 := p1[0], p1[1]
113+
for _, p2 := range points {
114+
x2, y2 := p2[0], p2[1]
115+
for _, p3 := range points {
116+
x3, y3 := p3[0], p3[1]
117+
u1, v1 := x2-x1, y2-y1
118+
u2, v2 := x3-x1, y3-y1
119+
t := float64(abs(u1*v2-u2*v1)) / 2.0
120+
ans = math.Max(ans, t)
121+
}
122+
}
123+
}
124+
return ans
125+
}
126+
127+
func abs(x int) int {
128+
if x < 0 {
129+
return -x
130+
}
131+
return x
132+
}
48133
```
49134

50135
### **...**
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
class Solution {
2+
public:
3+
double largestTriangleArea(vector<vector<int>>& points) {
4+
double ans = 0;
5+
for (auto& p1 : points)
6+
{
7+
int x1 = p1[0], y1 = p1[1];
8+
for (auto& p2 : points)
9+
{
10+
int x2 = p2[0], y2 = p2[1];
11+
for (auto& p3 : points)
12+
{
13+
int x3 = p3[0], y3 = p3[1];
14+
int u1 = x2 - x1, v1 = y2 - y1;
15+
int u2 = x3 - x1, v2 = y3 - y1;
16+
double t = abs(u1 * v2 - u2 * v1) / 2.0;
17+
ans = max(ans, t);
18+
}
19+
}
20+
}
21+
return ans;
22+
}
23+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
func largestTriangleArea(points [][]int) float64 {
2+
ans := 0.0
3+
for _, p1 := range points {
4+
x1, y1 := p1[0], p1[1]
5+
for _, p2 := range points {
6+
x2, y2 := p2[0], p2[1]
7+
for _, p3 := range points {
8+
x3, y3 := p3[0], p3[1]
9+
u1, v1 := x2-x1, y2-y1
10+
u2, v2 := x3-x1, y3-y1
11+
t := float64(abs(u1*v2-u2*v1)) / 2.0
12+
ans = math.Max(ans, t)
13+
}
14+
}
15+
}
16+
return ans
17+
}
18+
19+
func abs(x int) int {
20+
if x < 0 {
21+
return -x
22+
}
23+
return x
24+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
class Solution {
2+
public double largestTriangleArea(int[][] points) {
3+
double ans = 0;
4+
for (int[] p1 : points) {
5+
int x1 = p1[0], y1 = p1[1];
6+
for (int[] p2 : points) {
7+
int x2 = p2[0], y2 = p2[1];
8+
for (int[] p3 : points) {
9+
int x3 = p3[0], y3 = p3[1];
10+
int u1 = x2 - x1, v1 = y2 - y1;
11+
int u2 = x3 - x1, v2 = y3 - y1;
12+
double t = Math.abs(u1 * v2 - u2 * v1) / 2.0;
13+
ans = Math.max(ans, t);
14+
}
15+
}
16+
}
17+
return ans;
18+
}
19+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
class Solution:
2+
def largestTriangleArea(self, points: List[List[int]]) -> float:
3+
ans = 0
4+
for x1, y1 in points:
5+
for x2, y2 in points:
6+
for x3, y3 in points:
7+
u1, v1 = x2 - x1, y2 - y1
8+
u2, v2 = x3 - x1, y3 - y1
9+
t = abs(u1 * v2 - u2 * v1) / 2
10+
ans = max(ans, t)
11+
return ans

0 commit comments

Comments
 (0)