1037. Valid Boomerang
A boomerang is a set of 3 points that are all distinct and not in a straight line.
Given a list of three points in the plane, return whether these points are a boomerang.
Example 1:
Input: [[1,1],[2,3],[3,2]] Output: true
Example 2:
Input: [[1,1],[2,2],[3,3]] Output: false
Note:
points.length == 3
points[i].length == 2
0 <= points[i][j] <= 100
Rust Solution
struct Solution;
impl Solution {
fn is_boomerang(points: Vec<Vec<i32>>) -> bool {
points[0][0] * (points[1][1] - points[2][1])
+ points[1][0] * (points[2][1] - points[0][1])
+ points[2][0] * (points[0][1] - points[1][1])
!= 0
}
}
#[test]
fn test() {
let points: Vec<Vec<i32>> = vec_vec_i32![[1, 1], [2, 3], [3, 2]];
assert_eq!(Solution::is_boomerang(points), true);
let points: Vec<Vec<i32>> = vec_vec_i32![[1, 1], [2, 2], [3, 3]];
assert_eq!(Solution::is_boomerang(points), false);
}
Having problems with this solution? Click here to submit an issue on github.