2022-08-07 13:33:39 +08:00
# Leetcode Check-If-It-Is-a-Straight-Line
#### 2022-07-27 11:38
> ##### Algorithms:
2022-09-03 15:41:36 +08:00
>
> #algorithm #math
>
2022-08-07 13:33:39 +08:00
> ##### Difficulty:
2022-09-03 15:41:36 +08:00
>
2022-09-06 20:22:48 +08:00
> #coding_problem #difficulty_easy
2022-09-03 15:41:36 +08:00
>
2022-08-07 13:33:39 +08:00
> ##### Additional tags:
2022-09-03 15:41:36 +08:00
>
> #leetcode
>
2022-08-07 13:33:39 +08:00
> ##### Revisions:
2022-09-03 15:41:36 +08:00
>
2022-08-07 13:33:39 +08:00
> N/A
##### Related topics:
2022-09-03 15:41:36 +08:00
2022-08-07 13:33:39 +08:00
##### Links:
2022-09-03 15:41:36 +08:00
2022-08-07 13:33:39 +08:00
- [Link to problem ](https://leetcode.com/problems/check-if-it-is-a-straight-line/ )
2022-09-03 15:41:36 +08:00
---
2022-08-07 13:33:39 +08:00
### Problem
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.
#### Examples
**Example 1:**
![](https://assets.leetcode.com/uploads/2019/10/15/untitled-diagram-2.jpg)
```
**Input:** coordinates = [[1,2],[2,3],[3,4],[4,5],[5,6],[6,7]]
**Output:** true
```
**Example 2:**
**![](https://assets.leetcode.com/uploads/2019/10/09/untitled-diagram-1.jpg)**
```
**Input:** coordinates = [[1,1],[2,2],[3,4],[4,5],[5,6],[7,7]]
**Output:** false
```
#### Constraints
### Thoughts
> [!summary]
> This is a #math problem.
Many math problems can be simplified by:
- work out the expression
- Simplify it.
This is also true in this problem.
We want to calculate the k for every consecutive points, if they are the same, they are on one straight line.
By starting from the first, using them as the base k:
2022-09-03 15:41:36 +08:00
2022-08-07 13:33:39 +08:00
```
k = (dx0 - dx1) / (dy0 - dy1) = (dx - dx') / (dy - dy')
|
v
dx*yi - dy*xi = dx*y0 - dy*x0
```
Which is the cross product of these two points.
### Solution
==#TODO: Fill this out==
2022-09-03 15:41:36 +08:00
2022-08-07 13:33:39 +08:00
```cpp
WIP
2022-09-03 15:41:36 +08:00
```