1232. Check If It Is a Straight Line

You are given an array `coordinates`, `coordinates[i] = [x, y]`, where `[x, y]` represents the coordinate of a point. Check if these points make a straight line in the XY plane.

Example 1:

```Input: coordinates = [[1,2],[2,3],[3,4],[4,5],[5,6],[6,7]]
Output: true
```

Example 2:

```Input: coordinates = [[1,1],[2,2],[3,4],[4,5],[5,6],[7,7]]
Output: false
```

Constraints:

• `2 <= coordinates.length <= 1000`
• `coordinates[i].length == 2`
• `-10^4 <= coordinates[i][0], coordinates[i][1] <= 10^4`
• `coordinates` contains no duplicate point.

1232. Check If It Is a Straight Line
``````struct Solution;

impl Solution {
fn check_straight_line(coordinates: Vec<Vec<i32>>) -> bool {
let n = coordinates.len();
if n == 2 {
return true;
}
let x1 = coordinates[1][0] - coordinates[0][0];
let y1 = coordinates[1][1] - coordinates[0][1];
for i in 1..n {
let xi = coordinates[i][0] - coordinates[0][0];
let yi = coordinates[i][1] - coordinates[0][1];
if x1 * yi != xi * y1 {
return false;
}
}
true
}
}

#[test]
fn test() {
let coordinates: Vec<Vec<i32>> = vec_vec_i32![[1, 2], [2, 3], [3, 4], [4, 5], [5, 6], [6, 7]];
assert_eq!(Solution::check_straight_line(coordinates), true);
let coordinates: Vec<Vec<i32>> = vec_vec_i32![[1, 1], [2, 2], [3, 4], [4, 5], [5, 6], [7, 7]];
assert_eq!(Solution::check_straight_line(coordinates), false);
}
``````