812. Largest Triangle Area
You have a list of points in the plane. Return the area of the largest triangle that can be formed by any 3 of the points.
Example: Input: points = [[0,0],[0,1],[1,0],[0,2],[2,0]] Output: 2 Explanation: The five points are show in the figure below. The red triangle is the largest.
Notes:
3 <= points.length <= 50
.- No points will be duplicated.
-
-50 <= points[i][j] <= 50
. - Answers within
10^-6
of the true value will be accepted as correct.
Rust Solution
struct Solution;
impl Solution {
fn largest_triangle_area(points: Vec<Vec<i32>>) -> f64 {
let mut res: f64 = 0f64;
for i in &points {
for j in &points {
for k in &points {
let area = (i[0] * j[1] + j[0] * k[1] + k[0] * i[1]
- j[0] * i[1]
- k[0] * j[1]
- i[0] * k[1])
.abs();
let area = area as f64 / 2f64;
res = f64::max(area, res);
}
}
}
res
}
}
#[test]
fn test() {
use assert_approx_eq::assert_approx_eq;
let points: Vec<Vec<i32>> = vec_vec_i32![[0, 0], [0, 1], [1, 0], [0, 2], [2, 0]];
assert_approx_eq!(Solution::largest_triangle_area(points), 2f64);
}
Having problems with this solution? Click here to submit an issue on github.